您好我有一个帮助方法,它返回一个字符串,我需要在每个视图上使用它。 我正在尝试将此方法添加到ApplicationHelper
我的ApplicationController看起来像这样
class ApplicationController < ActionController::Base
helper :application
end
我的ApplicationHelper看起来像这样
module ApplicationHelper
def ThemeDir
"http://mysite.com/something/something"
end
end
当我尝试在视图中使用此方法时
<%= ThemeDir %>
它给了我以下错误。
uninitialized constant ActionView::CompiledTemplates::ThemeDir
有人可以帮我这个。
答案 0 :(得分:9)
Ruby中的约定是只有常量(即“经典”常量,类和模块)以大写字母开头。方法和变量应始终以小写字母开头。
同样的常量是用驼峰情况编写的(注意ApplicationController
中的两个“驼峰”?),而变量和方法通常用下划线语法编写,例如theme_dir
。这将ruby与Java,Javascript或C#等语言区分开来,其中camelcase在任何地方使用(尽管它们仍然通过第一个字母的大小写区分常量/初始化函数与变量和函数)。
差异很重要,因为方法的解析方式与常量不同。因此,Ruby必须知道您请求的内容是常量还是方法或局部变量。
结束这一点,请为您的帮助方法theme_dir
命名,一切都应该没问题。
答案 1 :(得分:5)
在Rails的ThemeDir'中将它视为常量。
将方法名称设为'theme_dir',然后尝试。