我可以从帮助程序中的模板获取本地模板var吗?
test.html.erb:
<% my_test_var = 'wonderful' %>
<%= my_output %>
test_helper.rb中:
def my_output
return @template[:my_test_var]
end
当然@template不存在。有没有办法得到它(不是@的全局。)
问候!
编辑:
模板test.html.erb被称为部分渲染,带有局部变量:
render 'test', :locals => { :my_test_var = 'hallo'}
我需要在帮助器中传递这个变量。
答案 0 :(得分:2)
如果你想在辅助工具中访问模板变量而不必将它们作为参数传递,我知道的唯一方法是使它们成为实例变量。
<% @my_test_var = 'wonderful' %>
<%= my_output %>
def my_output
return @my_test_var
end
但不建议这样做。理想情况下,实例变量应在控制器中定义并在视图中使用。我不确定为什么你不能将变量传递给helper方法。如果这不是一个要求,那么我支持krusty.ar的答案。
答案 1 :(得分:0)
助手是常用方法,您可以执行以下操作:
<% my_test_var = 'wonderful' %>
<%= my_output(my_test_var) %>
test_helper.rb中:
def my_output output
return output
end