【问题标题】:Autoloading Custom Folder自动加载自定义文件夹
【发布时间】:2013-12-17 10:11:04
【问题描述】:

我在app/models 中有一个名为form_objects 的文件夹。

它包含一个名为scoped_search.rb 的文件,它定义了一个类:

class ScopedSearch

end

application.rb我有:

config.autoload_paths += %W(#{config.root}/app/models/form_objects)

Rails 在启动时会加载此类,但如果不重新启动则不会获取更改。

我应该如何确保这个文件是自动加载的?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 class config autoload


    【解决方案1】:

    我会做什么,实际上我现在做什么:

    • app/form_objects(文件夹)

    • app/form_objects/form_objects.rb

    • app/form_objects/form_objects(文件夹)

    • app/form_objects/form_objects/scoped_search.rb

    app/form_objects/form_objects.rb 包含:

    module FormObjects
    end
    

    app/form_objects/form_objects/scoped_search.rb 应该是:

    module FormObjects
      class ScopedSearch
    
      end
    end
    

    这样一来,一切都清楚地命名了 + 无需添加任何自动加载配置

    【讨论】:

    • 谢谢。那么你将如何在控制器中使用ScopedSearch?你需要吗?您是否使用 FormObjects 命名空间来引用它?
    • 是的,总是::FormObjects::ScopedSearch,命名空间使事情变得清晰并避免冲突
    • FWIW 有问题,因为我需要 form/objects/scoped_search,这会阻止 Rails 在更改时自动加载它。
    猜你喜欢
    • 2019-12-03
    • 2018-05-29
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多