1

わかりました、私のタイトルが十分に明確だったかどうかはわかりませんが、説明しようと思います

私は 2 つのテーブルを持っています。私は RoR の学習を始めたばかりで、単純なタスクに固執しています。私が望むのは、次のような注文と関連アイテムを表示することだけです:

注文 1:
アイテム 1
アイテム 2

注文 2:
アイテム 1
アイテム 2
...

注文や商品を別々に表示する方法、商品の注文(item.order.id)を表示する方法は知っていますが、上記のように注文と商品をテーブルに表示する方法はありますか? 注文を表示するテンプレートでは、反復ごとに各アイテムを調べて、それを外部の order_id と order.id と比較できますが、それは厄介です。キーがorder_idであるある種の多次元ハッシュにアイテムを取得する必要があると想定しています。次に、このハッシュを注文IDで参照して、その中のすべてのアイテムを取得できますが、それが正しいかどうかはわかりません。

ここに書いたことは理解できると思います。

4

1 に答える 1

3

リレーションを定義するhas_manyと、それらのオブジェクトを照会するメソッドが自動的に取得されます。この場合、メソッドorder.items.

したがって、次のことができます。

Order.find_each do |order|
  puts "Order #{order.id}:"
  order.items.each do |item|
    puts "Item #{item.id}"
  end
end

(私は、Rails 2.3 以降で利用可能なfind_eachOrder.all.eachメソッドを使用しました。単純なものを使用することもできます。

于 2010-07-04T19:56:09.203 に答える