这与先前询问的question
有关我在产品和供应商之间有一个has_and_belongs_to_many。
在我看来,我使用:
<td><%= product.suppliers.map {|supplier| supplier.NAME }.join(', ') %></td>
显示表格中每个产品的每一行分隔的供应商逗号列表。
我现在需要在发票索引视图上显示相同的列表。发票表有一列PRODUCT。我已经在Invoice模型上设置了belongs_to:product。
我尝试了我的发票索引视图:
<td><%= invoice.product.suppliers.map {|supplier| product.supplier.NAME }.join(', ') %></td>
但它返回
错误未定义的局部变量或方法`product'
为什么不工作?我该如何解决?提前谢谢。
答案 0 :(得分:3)
您构建了错误的.map
,请尝试
invoice.product.suppliers.pluck(:NAME).join(', ')
顺便说一句
在视图中使用逻辑是不好的做法,你应该将你的逻辑移到模型中,并在视图中使用类似的东西:
<%= invoice.suppliers_names %>
应该返回# => 'Name_1, Name_2, etc'