Rails:将代码从视图移动到帮助文件时未定义的方法错误

时间:2016-09-03 03:06:26

标签: ruby-on-rails ruby

在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 %>

但是,它显示错误

  

未定义的局部变量或方法`批准'

导致错误的原因是什么,如何解决?感谢

1 个答案:

答案 0 :(得分: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 %>
相关问题