Ruby on rails Rails 4:应用程序初始化时未初始化的常量-暂存环境中的库加载问题
我正在暂存环境中运行rake db:setupRuby on rails Rails 4:应用程序初始化时未初始化的常量-暂存环境中的库加载问题,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在暂存环境中运行rake db:setup bundle exec rake db:setup RAILS_ENV=staging 我的配置/environments/staging.rb Rails.application.configure do .. config.eager_load = true .. end 我在应用程序初始化期间遇到此错误: : uninitialized constant ApplicationHelper::MyModule .
bundle exec rake db:setup RAILS_ENV=staging
我的配置/environments/staging.rb
Rails.application.configure do
..
config.eager_load = true
..
end
我在应用程序初始化期间遇到此错误:
: uninitialized constant ApplicationHelper::MyModule
../my_test/app/helpers/application_helper.rb:4:in `<module:ApplicationHelper>'
而lib文件是:
/lib/misc/my_module/ditto/base.rb
module MyModule
module Ditto
module Base
…
end
end
end
/lib/misc/my_module/ditto/my_helper.rb
module MyModule
module Ditto
module SliderHelpers
…
end
end
end
我猜库中的模块不是自动加载的。。(由于所有库“require”都是硬编码的,所以在开发环境中一切都运行良好。。
我应该添加什么以使其在暂存/生产环境中运行
感谢您的支持…添加
config.autoload_路径+=%W(#{config.root}/lib)
到config/application.rb
默认情况下Rails.root中的lib
目录不在app/
中。谢谢Andrey。由于我的lib结构更复杂,我决定需要初始化器中的模块。然而,非常奇怪的是,数组的顺序并不总是相同的,有时是基本模块不会首先导致未初始化的常量BaseView…Dir[“#{Rails.root}/lib/calendars/lib/*.rb”]。每个{文件| require文件}BaseView是第一个类,其他都是子类…知道吗?
/lib/misc/my_module/ditto/base.rb
module MyModule
module Ditto
module Base
…
end
end
end
/lib/misc/my_module/ditto/my_helper.rb
module MyModule
module Ditto
module SliderHelpers
…
end
end
end