我的帮助器内部有各种方法,我在相应的视图中调用它们,完全没问题。但是,我尝试在ApplicationHelper中添加一个泛型方法,一个在其他帮助器中工作的方法,并且它抛出一个错误。错误是:
ActionView::Template::Error (undefined local variable or method `rank_name' for #<#<Class:0x007f38a6a246b8>:0x007f389626a6a8>):
似乎只有帮助者没有被包括在内。知道为什么会这样吗?我尝试在ApplicationController中包含帮助器和方法,但没有任何改变。
这是具体方法:
def gravatar_url(email, size)
gravatar = Digest::MD5::hexdigest(email).downcase
url = "http://gravatar.com/avatar/#{gravatar}.png?s=#{size}"
end
根据我的理解,您希望在另一个Helper中使用ApplicationHelper中定义的方法。虽然在Helpers之间共享方法不是一个好习惯,但您可以通过在控制器或application_controller中使用它来实现:
helper :all