플러그 인 확장 (2)

2448 단어 htmlRubyRails
ruby:1.9.2
rails3.0.3
 
플러그 인 을 만 드 는 과정 에서 plugin 의 models, controllers 등 구성 요 소 를 자동 으로 도입 하 는 과정 에서 다음 코드 를 추가 하 는 데 문제 가 발생 했 습 니 다.
http://guides.rubyonrails.org/plugins.html#models
 
가입 코드:
%w{ models }.each do |dir|
  path = File.join(File.dirname(__FILE__), 'app', dir)
  $LOAD_PATH << path
  ActiveSupport::Dependencies.load_paths << path
  ActiveSupport::Dependencies.load_once_paths.delete(path)
end

 
질문:
/root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:10:in `block in <top (required)>': undefined method `load_paths' for ActiveSupport::Dependencies:Module (NoMethodError)
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:5:in `each'
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/lib/yaffle.rb:5:in `<top (required)>'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `block in require'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:227:in `load_dependency'
        from /usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:239:in `require'
        from /root/NetBeansProjects/rails-demo/vendor/plugins/yaffle/rails/init.rb:2:in `block in <class:Plugin>'
 

 
load 를 찾 을 수 없 음paths 방법, 마지막 으로 소스 코드 에서 보 았 지만 load 를 발견 하지 못 했 습 니 다.paths 와 loadonce_paths 방법.이 두 가지 방법 은 2.3.5 버 전에 서 발견 되 었 는데 3.0.3 으로 업그레이드 되 었 을 때 삭제 되 었 습 니까?
 
3.0.3 에서 autoload 를 사 용 했 습 니 다.paths 와 loadonce_paths, 이것 은 앞의 두 가지 방법의 교체 방법 입 니 다.코드 를 다음 코드 로 바 꾸 면 테스트 를 통과 합 니 다.
%w{ models }.each do |dir|
  path = File.join(File.dirname(__FILE__), 'app', dir)
  $LOAD_PATH << path
  ActiveSupport::Dependencies.autoload_paths << path
  ActiveSupport::Dependencies.autoload_once_paths.delete(path)
end

 
 
[1]http://guides.rubyonrails.org/plugins.html#models
[2]http://rubydoc.info/docs/rails/3.0.0/frames
 

좋은 웹페이지 즐겨찾기