モデル (「パッケージ」) のインスタンスを、それが属する他の 2 つのモデル (「カット」と「アニマル」) との関係によって選択しようとしています。:cut_id 3 のパッケージと :animal_id 4 のパッケージが多数あるとしますが、両方を含むパッケージは 1 つだけである必要があります。その 1 つを選択して、その内容を表に表示したいと思います。
以下の 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 %>