2010-12-03 26 views
1

可以從幫助程序中的模板獲取本地模板變量嗎?在幫助程序中獲取模板變量

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

助手是正常的方法,你可以這樣做:

<% my_test_var = 'wonderful' %> 
<%= my_output(my_test_var) %> 

test_helper.rb中:

def my_output output 
    return output 
end 
+0

是的,沒錯,但就我而言,這有點困難。見上面,我編輯了我的問題。 – frank 2010-12-03 13:08:48

2

如果你想在助手訪問的模板變量,而不必通過他們的參數,我知道的唯一方法是讓它們成爲實例變量。

<% @my_test_var = 'wonderful' %> 
<%= my_output %> 

def my_output 
    return @my_test_var 
end 

雖然這不推薦。理想情況下,實例變量應該在控制器中定義並在視圖中使用。我不確定爲什麼你不能將變量傳遞給輔助方法。如果這不是要求,那麼我支持krusty.ar的回答。