2016-09-03 27 views
1

在approval.html.erbRails的:當移動代碼從視圖助手文件

<% @approval.each do |approval| %> 
    <td><%= Material.find_by_id(approval.material_id).m_name%></td> 
<% end %> 

我想移動Material.find_by_id(approval.material_id)審批輔助文件未定義的方法錯誤。

在approval_helper.rb

def approval_material 
    Material.find_by_id(approval.material_id) 
end 

然後,我修改approval.html.erb

<% @approval.each do |approval| %> 
    <td><%= approval_material.m_name%></td> 
<% end %> 

然而,它顯示我的錯誤

未定義局部變量或方法`批准'

什麼原因導致錯誤,如何解決?謝謝

+1

'高清approval_material(批准)'和'<%= approval_material(審批).m_name%>'。 –

回答

3

您需要將參數傳遞給輔助方法approval_material方法。喜歡的東西:

def approval_material(approval) 
    Material.find_by_id(approval.material_id) 
end 

,然後在你的觀點,你可以這樣調用它:

<% @approval.each do |approval| %> 
    <td><%= approval_material(approval).m_name%></td> 
<% end %> 
+0

謝謝,真的很有幫助。 –

+0

高興地幫助:) –