好的,我不确定我的标题是否足够清楚,但我会尝试解释
我有两个表:has_many项目的订单和belongs_to订单的项目。 我刚开始学习RoR并坚持完成一项简单的任务。我想要的只是 显示订单和相关项目,如下所示:
订单1:
第1项
第2项
第2号命令:
第1项
第2项
...
我知道如何单独显示订单或商品,我知道如何显示商品的订单(item.order.id),但如何在表格中显示订单和商品?在我显示订单的模板中,我可以在每次迭代时浏览每个项目,并将其外部order_id与order.id进行比较,但这样会很尴尬。我假设我应该将项目放入某种多维哈希中,其中key是order_id然后我可以通过order id引用这个哈希并获取其中的所有项目,但我不确定它是否正确。
我希望我在这里写的内容是可以理解的。
答案 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
。