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

发布于 2024-09-08 19:07:23 字数 433 浏览 4 评论 0原文

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

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

订单 1:
第 1 项
项目 2

订单 2:
第 1 项
第 2 项
...

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

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

Ok, I'm not sure that my title was clear enough, but I will try to explain

I have two tables: orders that has_many items and items that belongs_to orders.
I just started to learn RoR and stuck with a simple task. All I want is to
display orders and related items like this:

Order 1:
Item 1
Item 2

Order 2:
Item 1
Item 2
...

I know how to display orders or items separately, I know how to display items' orders (item.order.id), but how to display orders and items in the table like above? In template where I display orders I could go through each item every iteration and compare it foreign order_id with order.id, but that would be awkward. I'm supposing that I should get items into some kind of multidimensional hash where key would be order_id and then I could just refer to this hash by order id and get all items in it, but I'm not sure it's correct.

I hope what I have written here is understandable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

还不是爱你 2024-09-15 19:07:23

当您定义 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

When you define a has_many relation, you automatically get the methods to query those objects. In this case, the method order.items.

So you can do:

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

(I used find_each method, which is available from Rails 2.3+. You could use a simple Order.all.each though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文