用于查看未初始化常量问题的 Rails 帮助程序枚举



我一直得到

uninitialized constant ActionView::CompiledTemplates::BLAHBLAH1

当我在 erb 文件中使用 BLAHBLAH1 时,它不起作用,但如果我在它前面加上帮助程序名称BlahBlahHelper::BLAHBLAH1它就可以工作了。帮助程序blahblah_helper.erb包含以下内容:

module BlahBlahHelper
  BLAHBLAH1 = 0
end

视图的文件名为 blah_blah.html.erb 。我知道我有正确的命名约定供助手查看,因为我已经测试过了。

帮助程序位于视图的子目录中会是一个问题吗?

有没有办法让它工作而不必在帮助程序名称前面加上前缀?

仅当帮助程序模块具有与控制器名称匹配的名称时,才会自动加载该模块。

因此,在您的情况下,您有 2 个选择:

1)

include BlahBlahHelper # in controller, same as `helper BlahBlahHelper`

2)

将控制器重命名为 BlahBlahController

好的,正如 edikgat 试图在评论中指出的那样,这里的问题是常量解决方案。

要使用常量,您必须使用全名引用它,因为常量不包含在模块中,只有它的方法。

通读本指南,了解在 Rails 中加载常量。

发生这种情况是因为像其他模块一样的帮助程序仅包含查看其方法。无法包含常量

最新更新