【问题标题】:Where should libraries go in Rails 3?Rails 3 中的库应该放在哪里?
【发布时间】:2011-01-25 14:03:19
【问题描述】:

Rails 3 中库的推荐位置在哪里?像'lib'那么简单吗?

我不确定,因为“lib”看起来更像是 Rails 2 的残余,尤其是考虑到它不再自动加载(显然,对此进行了很多讨论)。

初始化器更多地用于(显然)初始化任务,例如覆盖。

具体来说,我有一个用于附件处理的小模块(Paperclip 不适合这里),它太大且不同,无法包含在我的模型中,但不够通用或不值得作为 gem 来实现。

从功能的角度来看,它位于模型、视图和控制器的中间位置。这使它听起来像一个助手,但在 Rails 中,助手是为视图 AFAIK 设计的。

我应该把它放在'lib'中并在application.rb中自动加载它吗?或者,也许我可以创建一个自定义表单构建器来处理演示(或两者兼而有之)。

我知道如何让它发挥作用,但我希望能学到一些新东西。 :)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    lib 仍然是放置这些东西的正确位置。

    由于引擎的工作方式,自动加载库在 Rails 3 中被删除,但主要是因为如果您确实希望自动加载它,只需将其添加到 autoload_paths 很容易,如果不希望,您可以根据需要添加。 lib 仍在加载路径中,因此您无需指定 where 您需要的模块或类。

    你说得对,助手是为视图而设计的,而不是放置任何与模型相关的逻辑的地方。

    我会将模块放在 lib 中,并根据需要将其包含在您的模型中。

    【讨论】:

    • 非常有帮助的答案,尤其是有关需要不自动加载的模块的详细信息。谢谢!
    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 2011-12-07
    • 2012-02-17
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多