在Rails 2.3中,将目录添加到加载路径的正确方式是什么,以便它与Rails的自动重新加载机制挂钩?
我正在考虑的具体示例是,我有一个类,它有几个使用STI的子类,我认为将它们放在一个子目录中是一个好主意,而不是弄乱顶级目录。所以我会有类似这样的东西:
#app/models/widget.rb
class Widget < ActiveRecord::Base
add_to_load_path File.join(File.dirname(__FILE__), "widgets")
end
#app/models/widgets/bar_widget.rb
class BarWidget < Widget
end
#app/models/widgets/foo_widget.rb
class FooWidget < Widget
end
这就是我要找的add_to_load_path
方法。
发布于 2010-09-07 00:51:29
在Rails 3中,您可以在config/application.rb中进行设置,默认情况下会提供此示例:
# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{config.root}/extras )
发布于 2016-09-04 05:44:22
在Rails 5上,您需要将以下代码添加到environment.rb:
# Add the widgets folder to the autoload path
Rails.application.configure do
config.autoload_paths << "#{Rails.root}/app/widgets"
end
发布于 2010-10-13 06:51:18
Rails3的另一个更新-- activesupport 3.0.0:
而不是:
ActiveSupport::Dependencies.load_paths << "#{RAILS_ROOT}/app/widgets"
您可能需要执行以下操作:
ActiveSupport::Dependencies.autoload_paths << "#{RAILS_ROOT}/app/widgets"
https://stackoverflow.com/questions/1223481
复制相似问题