如何打印属于此表的所有元素

时间:2010-07-04 19:50:36

标签: ruby-on-rails has-many belongs-to

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

我有两个表:has_many项目的订单和belongs_to订单的项目。 我刚开始学习RoR并坚持完成一项简单的任务。我想要的只是 显示订单和相关项目,如下所示:

订单1:
  第1项   第2项

第2号命令:
  第1项   第2项 ...

我知道如何单独显示订单或商品,我知道如何显示商品的订单(item.order.id),但如何在表格中显示订单和商品?在我显示订单的模板中,我可以在每次迭代时浏览每个项目,并将其外部order_id与order.id进行比较,但这样会很尴尬。我假设我应该将项目放入某种多维哈希中,其中key是order_id然后我可以通过order id引用这个哈希并获取其中的所有项目,但我不确定它是否正确。

我希望我在这里写的内容是可以理解的。

1 个答案:

答案 0 :(得分: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

(我使用了find_each方法,可以从Rails 2.3+获得。但你可以使用简单的Order.all.each