在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)移到审批帮助程序文件。
批准中
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 %>

但是,它显示了一个错误
未定义的局部变量或方法“approval”
是什么导致了错误,如何解决谢谢

最佳答案

您需要将参数传递给helper方法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 %>

关于ruby-on-rails - Rails:将代码从 View 移动到帮助文件时发生未定义的方法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39302864/

10-11 20:38