ここではおそらく単純なアプローチを見落としていますが、2軸で動的なテーブルをコーディングするための最良の方法は何ですか。Rails3.2を使用しています
たとえば、次のモデルがあるとします
class Region
has_many :shops
end
class Shop
has_many :sales
has_many :products, through: :sales
end
class Sale
belongs_to :shop
belongs_to :product
end
class Product
has_many :sales
has_many :shops, through: :sales
end
リージョンショービューで、列ヘッダーのショップ、行ヘッダーの製品をリストし、Sale.price
各セルの平均を計算するテーブルを表示したいと思います。
ネストされたブロックの混乱に陥っていますが、計算された値が期待したものと一致していないようです。
このようなことを行うための簡単なRails-yの方法はありますか?または、私が研究できるサンプルコードを誰かに勧めてもらえますか。
私の実際のモデルは、私が十分に説明したよりも少し複雑であり、デバッグするためにコードの作業に時間を費やす必要があるのか、それとももっと単純なアプローチに従うべきなのか疑問に思っています。これはかなり一般的な要件のようです。
編集
私のコードの例
#views/regions/show.html.erb
<table>
<tr>
<th>Shop Name</th>
<% for product in @region.products.uniq %>
<th><%= product.name%></th>
<% end %>
</tr>
<% for shop in @region.shops.uniq %>
<tr>
<td><%= shop.name %></td>
<% for product in @region.products.uniq %>
<td><%= product.sales.average(:price, conditions: ['sale.shop_id = ?', shop], :include => :sale) %></td>
<% end %>
</tr>
<% end %>
</table>