我试图通过它与它所属的其他两个模型(“Cut”和“Animal”)的关系来挑选一个模型(“Package”)的实例。虽然有很多带有 :cut_id 3 的包和很多带有 :animal_id 4 的包,但应该只有一个带有这两者,我想挑选一个并在表格中显示它的内容。
我已经尝试过以下 DIY 混乱,但它并没有真正起作用。(cutfind 是我创建的一种方法,我知道它可以调用与给定动物相关的所有切割。)
<% @animal.cutfind.each do |cut| %>
<tr>
<td><%= cut.name %></td>
<td><%= number_to_currency(cut.price) %></td>
<td><%= cut.package_weight %> lb</td>
<% @a = Package.where(:animal_id => @animal.id) %>
<% @pset = @a.where(:cut_id => cut.id) %>
<% @pset.each do |p| %>
<td><%= p.original %></td>
<td><%= p.left %></td>
<% end %>
</tr>
<%end%>
知道如何做到这一点[更好]?谢谢。
更新:我尝试了其他 DIY 混乱并且遇到了同样的问题(甚至没有创建单元格,这让我相信 @pset 是空的)。
这是在我的动物模型中:
def packagefind
Package.where(:animal_id => self.id)
end
然后我像这样更改了上面的内容:
<td><%= cut.package_weight %> lb</td>
<% @pset = @animal.packagefind.where(:cut_id => cut.id) %>
<% @pset.each do |p| %>
<td><%= p.original %></td>
<td><%= p.left %></td>
<% end %>