首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向Rails中的加载路径添加目录?

向Rails中的加载路径添加目录?
EN

Stack Overflow用户
提问于 2009-08-03 17:11:59
回答 6查看 60.2K关注 0票数 68

在Rails 2.3中,将目录添加到加载路径的正确方式是什么,以便它与Rails的自动重新加载机制挂钩?

我正在考虑的具体示例是,我有一个类,它有几个使用STI的子类,我认为将它们放在一个子目录中是一个好主意,而不是弄乱顶级目录。所以我会有类似这样的东西:

代码语言:javascript
复制
#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方法。

EN

回答 6

Stack Overflow用户

发布于 2010-09-07 00:51:29

在Rails 3中,您可以在config/application.rb中进行设置,默认情况下会提供此示例:

代码语言:javascript
复制
# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{config.root}/extras )
票数 27
EN

Stack Overflow用户

发布于 2016-09-04 05:44:22

在Rails 5上,您需要将以下代码添加到environment.rb:

代码语言:javascript
复制
# Add the widgets folder to the autoload path
Rails.application.configure do
  config.autoload_paths << "#{Rails.root}/app/widgets"
end
票数 11
EN

Stack Overflow用户

发布于 2010-10-13 06:51:18

Rails3的另一个更新-- activesupport 3.0.0:

而不是:

代码语言:javascript
复制
ActiveSupport::Dependencies.load_paths << "#{RAILS_ROOT}/app/widgets"

您可能需要执行以下操作:

代码语言:javascript
复制
ActiveSupport::Dependencies.autoload_paths << "#{RAILS_ROOT}/app/widgets"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1223481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档