在帮助器中获取模板变量

时间:2010-12-03 12:42:07

标签: ruby-on-rails

我可以从帮助程序中的模板获取本地模板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'}

我需要在帮助器中传递这个变量。

2 个答案:

答案 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