我一直在
uninitialized constant ActionView::CompiledTemplates::BLAHBLAH1
当我在erb文件中使用BLAHBLAH1
时它不起作用,但如果我用帮助器名BlahBlahHelper::BLAHBLAH1
作为前缀,则它可以正常工作。
帮助者是blahblah_helper.erb
,内容为:
module BlahBlahHelper
BLAHBLAH1 = 0
end
视图的文件名为blah_blah.html.erb
。我知道我有一个正确的命名约定来查看帮助器,因为我测试了它。
帮助程序位于视图的子目录中会成为问题吗?
有没有办法让它工作而不必为助手名称添加前缀?
答案 0 :(得分:2)
辅助模块只有在与控制器名称匹配的名称时才会自动加载。
因此,在您的情况下,您有两个选择:
1)
include BlahBlahHelper # in controller, same as `helper BlahBlahHelper`
2)
将控制器重命名为BlahBlahController
。
好的,正如edikgat试图在评论中指出这里的问题是常数解析。
要使用常量,必须使用全名引用它,因为常量不包含在模块中,只包含它的方法。
读取有关在Rails中加载的常量的this guide。
答案 1 :(得分:0)
这种情况发生了,因为像其他模块一样的帮助程序只包括查看其方法。没有办法包含常量