私のテーブル名義在庫には、列としてproduct_id, color_id, storage_id and in_stock
が含まれています。グループに私がしたい特定の製品についてはレールでコレクションを列でグループ化する方法
保存することにより、すべての株式は、その後、各ストレージのために、私は、製品(色)を表示したい:IN_STOCK
がどのようにメソッドを記述し、どのように描画するためにすべき?
私のテーブル名義在庫には、列としてproduct_id, color_id, storage_id and in_stock
が含まれています。グループに私がしたい特定の製品についてはレールでコレクションを列でグループ化する方法
保存することにより、すべての株式は、その後、各ストレージのために、私は、製品(色)を表示したい:IN_STOCK
がどのようにメソッドを記述し、どのように描画するためにすべき?
<% Stock.all.group_by(&:storage).each do |storage, products| %>
Storage: <%= storage %>
<% products.each do |product| %>
(<%= product.color_id %>): <%= product.in_stock %>
<% end %>
<% end %>
編集:ERBを使用するように更新し、数ではなくブールはい/いいえ列としてIN_STOCK、そしてそれはあなたが色との関係を持っていると仮定しているためcolor.nameの代わりにCOLOR_IDを使用。
あなたの投稿には十分な情報がありませんが、これはおそらく何か?
items = Stock.select('color_id, in_stock').group('stocks.storage_id').where(:product_id => foo)
items.each {|item| puts "(#{lookup_color(item.color_id)}): #{in_stock}"
こんにちは、お返事ありがとうございます。コンソールを通して、それは期待通りに動作しますが、UIを使って '# {#<ストレージID:1、名前:"倉庫 "、updated_at:" 2011-11-08 21:18:07 "> => [#<在庫ID:1、product_id:1、color_id:10、storage_id:1、in_stock:5.0>、#<在庫ID:586、product_id:1、color_id:1、storage_id:1、in_stock: #>] ... 'それは関係について不平を言うが、どちらが確実かはわからないようだ。何か案が? –
Gaelle
@Gaelle ERBを使用するための私の答えとこのコメントからのいくつかの手がかりを更新しました。より多くの問題がある場合は、より説明的にしてください。エラーメッセージが表示された場合は、投稿してください。 – Unixmonkey