【问题标题】:Rails 3 autoload_paths versus Rails 2 load_pathsRails 3 autoload_paths 与 Rails 2 load_paths
【发布时间】:2012-09-19 22:43:15
【问题描述】:

所以,我发现我需要将我的 config.load_paths 更改为 config.autoload_paths,但是当我这样做时,我开始看到这个异常:

Expected /path/to/myapp/app/helpers/controllers/my_helper.rb to define Controllers::MyHelper

在 Rails 2 中,它从未抱怨过 helpers/controllers 文件夹,但现在它似乎需要一个命名空间模块。我是否已经重命名了我所有的助手,还是有其他方法可以工作?我有很多助手,所以我使用助手/模型助手/视图和助手/控制器来保持它们井井有条。

提前致谢!

【问题讨论】:

  • 当我将它们重命名为 Controllers::MyHelper 时,它抱怨说它期待 MyHelper 哈哈。有什么方法可以在 Rails 3 中组织助手?
  • 您在控制器中使用了什么样的助手?通常帮助者是为了观点。如果您需要控制器的共享功能,您可以将其包含在您的 ApplicationController 中,以便您的控制器继承它,或者将其存储在模块或 lib/ 中的某些内容中并包含它。

标签: ruby-on-rails-3


【解决方案1】:

Rails 3 确实希望您的类根据文件名和目录层次结构进行命名空间,因此您必须将帮助程序重命名为 Controllers::MyHelper

【讨论】:

    【解决方案2】:

    出于性能原因,Rails 3 中的文件命名约定比 Rails 2 中严格得多。 Rails 3 期望文件结构直接匹配类层次结构。

    如果您想在 Rails 3 中运行应用程序,我建议您删除 helpers 目录或在每个类声明的前面添加 Controllers::

    【讨论】:

    • 很遗憾这是不正确的,它实际上是 Rails 3 的东西。
    猜你喜欢
    • 1970-01-01
    • 2013-11-15
    • 2013-06-24
    • 1970-01-01
    • 2011-08-12
    • 2011-05-25
    • 1970-01-01
    • 2011-08-21
    • 2011-04-17
    相关资源
    最近更新 更多