【问题标题】:Rails: undefined method error when move codes from view to helper fileRails:将代码从视图移动到帮助文件时出现未定义的方法错误
【发布时间】:2016-09-03 03:06:25
【问题描述】:

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

但是,它显示了一个错误

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

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

【问题讨论】:

  • def approval_material(approval)&lt;%= approval_material(approval).m_name %&gt;

标签: ruby-on-rails ruby


【解决方案1】:

你需要给辅助方法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 %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 2016-12-18
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多