按照惯例,Rails只“附加”视图助手,它对应于调用erb文件的控制器。
如何在Rails中访问视图助手的任意视图助手的方法?
答案 0 :(得分:2)
如果您需要这样做,代码组织有问题。相反,将您的两个视图所需的辅助方法移动到一个公共模块中,并在两个模块中包含该模块。
例如,如果你有:
module ApplesHelper
def flavor_of(fruit)
end
end
并且您希望/ bananas视图可以访问flavor_of
方法,然后执行此操作:
module Flavored
def flavor_of(fruit)
# ...
end
end
module ApplesHelper
include Flavored
end
module BananasHelper
include Flavored
end
更新:我意识到我并没有直接回答原来的问题。在视图中包含另一个帮助程序的方法是使用helper
:
class BananasController ...
helper ApplesHelper
end
现在所有/ bananas视图也可以使用ApplesHelper方法。
答案 1 :(得分:1)
如果我理解了这个问题,你必须用以下方法定义你的方法助手:
module ControllerHelper
def function_you_have_to_call
some_code_here
end
end
如果要通过* .erb文件调用方法助手,则必须在视图中插入它:
<% function_you_have_to_call %>
如果您的方法有返回值,并且您想将其存储在视图中定义的局部变量中,请尝试:
<% value_you_want = function_you_have_to_call %>
请记住,<% %>
包含的代码仅由ruby解释,而不是由视图显示。在这种情况下,您必须使用<%= %>
包含的代码。
现在您可以访问value_you_want
并可能用于语句。