1

好的,我不确定我的标题是否足够清楚,但我会尝试解释

我有两个表:具有_many 项目的订单和属于_to 订单的项目。我刚开始学习 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_each方法。不过你可以使用一个简单的方法Order.all.each

于 2010-07-04T19:56:09.203 回答