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

我有两个表:订单的订单和属于订单的项目和项目。我刚刚开始学习ROR,并坚持一项简单的任务。我想要的是显示订单和相关项目:

订单1:
项目1
项目2

订单2:
项目1
项目2
...

我知道如何分别显示订单或项目,我知道如何显示项目的订单(item.order.id),但是如何在表中显示订单和项目?在我显示订单的模板中,我可以通过每项迭代进行每个项目,并将其与order order_id进行比较,但这会很尴尬。我认为我应该将项目放入某种多维哈希中,其中关键将是order_id,然后我可以通过订单ID参考此哈希,并在其中获取所有项目,但是我不确定它是否正确。

我希望我在这里写的东西是可以理解的。

有帮助吗?

解决方案

定义一个 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 尽管。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top