Rails helper枚举以查看未初始化的常量问题

时间:2016-01-25 16:50:08

标签: ruby-on-rails ruby ruby-on-rails-4 enums constants

我一直在

uninitialized constant ActionView::CompiledTemplates::BLAHBLAH1

当我在erb文件中使用BLAHBLAH1时它不起作用,但如果我用帮助器名BlahBlahHelper::BLAHBLAH1作为前缀,则它可以正常工作。 帮助者是blahblah_helper.erb,内容为:

module BlahBlahHelper
  BLAHBLAH1 = 0
end

视图的文件名为blah_blah.html.erb。我知道我有一个正确的命名约定来查看帮助器,因为我测试了它。

帮助程序位于视图的子目录中会成为问题吗?

有没有办法让它工作而不必为助手名称添加前缀?

2 个答案:

答案 0 :(得分:2)

辅助模块只有在与控制器名称匹配的名称时才会自动加载。

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

1)

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

2)

将控制器重命名为BlahBlahController

好的,正如edikgat试图在评论中指出这里的问题是常数解析。

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

读取有关在Rails中加载的常量的this guide

答案 1 :(得分:0)

这种情况发生了,因为像其他模块一样的帮助程序只包括查看其方法。没有办法包含常量