복붙노트

[RUBY-ON-RAILS] 3 자동로드 레일

RUBY-ON-RAILS

3 자동로드 레일

나는 클래스 ConstData 있습니다 :

class ConstData

  US_CITIES = ['miami', 'new york']

  EUROPERN_CITIES = ['madrid', 'london']

end

그 /lib/const_data.rb에 저장

아이디어는 모델, 컨트롤러 내부에 그 또는 내가 할 수있는보기 :

ConstData :: US_CITIES는 US_CITIES 등을 얻을 수 있습니다

레일 내가로부터이있어, 자동으로이 클래스를로드해야합니다 : http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/662abfd1df9b2612?hl=en

그러나이 작동하지 않습니다. 사람이 어떻게 이러한 목표를 달성하는 나를 설명 할 수 있습니까?

해결법

  1. ==============================

    1.2008 년 레일은 그 이후로 변경되었습니다 출신에 게시물 @daniel는 말합니다. 사실, 아주 최근에. Rails3 자동으로 lib 디렉토리 / 디렉토리를로드하지 않습니다.

    2008 년 레일은 그 이후로 변경되었습니다 출신에 게시물 @daniel는 말합니다. 사실, 아주 최근에. Rails3 자동으로 lib 디렉토리 / 디렉토리를로드하지 않습니다.

    당신은 아주 쉽게하지만 그것을 활성화 할 수 있습니다. 따라와 (Application 클래스로) 설정에서 열기 설정 / application.rb 그리고 추가 :

    config.autoload_paths += %W(#{config.root}/lib)
    

    그런 다음 lib 디렉토리 / 디렉토리는 자동으로로드됩니다.

  2. ==============================

    2.이유 autoload_paths 당신을 위해 작동하지 않았다 당신이하도록 강요했다 :

    이유 autoload_paths 당신을 위해 작동하지 않았다 당신이하도록 강요했다 :

    Dir["lib/**/*.rb"].each do |path|
      require_dependency path
    end
    

    당신이 당신의 클래스를 네임 스페이스 깜빡 때문이다.

    lib 디렉토리 / 최고 /의 stuffs.rb이 같은 클래스 / 모듈을 포함한다 :

    class/module Awesome::Stuffs
    ....
    

    하지만 당신은 있었다 :

    class/module Stuffs
    ....
    

    레일은 클래스와 이름이 그것의 파일 경로와 파일 이름과 일치하는 모듈을 자동로드 할 수 있습니다.

    :)

  3. ==============================

    3.config.autoload_paths 나를 위해 작동하지 않았다. 나는와 ApplicationController에 다음을 넣어 그것을 해결 :

    config.autoload_paths 나를 위해 작동하지 않았다. 나는와 ApplicationController에 다음을 넣어 그것을 해결 :

    Dir["lib/**/*.rb"].each do |path|
      require_dependency path
    end
    
  4. ==============================

    4.자동으로 적재 할 lib 디렉토리의 디렉토리에 대한 솔루션을 따르십시오 :

    자동으로 적재 할 lib 디렉토리의 디렉토리에 대한 솔루션을 따르십시오 :

    config.threadsafe를 제거! development.rb 및 production.rb에서;

    에서 설정 / application.rb 추가 :

    config.autoload_paths += %W(#{config.root}/lib)
    config.threadsafe!
    config.dependency_loading = true
    
  5. from https://stackoverflow.com/questions/4073856/rails-3-autoload by cc-by-sa and MIT license