在approval.html.erb
<% @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 %>
但是,它显示错误
undefined local variable or method `approval'
错误的原因是什么,如何解决?谢谢
最佳答案
您需要将参数传递给辅助方法approval_material
方法。像这样的东西:
def approval_material(approval)
Material.find_by_id(approval.material_id)
end
然后在您的 View 中您可以这样调用它:
<% @approval.each do |approval| %>
<td><%= approval_material(approval).m_name%></td>
<% end %>
关于ruby-on-rails - rails : undefined method error when move codes from view to helper file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39302864/