我在通过表查询时遇到一些问题,如果我只选择一条记录,它可以正常工作,但是如果我选择多条记录则不行。例如
Orders Table
|
/ | \
OrderProducts Table
\ | /
|
Products Table
订购模型
has_many :order_products
has_many :products, :through => :order_products
OrderProducts模型
belongs_to :order
belongs_to :product
产品型号
has_many :order_products
has_many :orders, :through => :order_products
Activerecord查询
Order.find(1).products // this works
Order.where(type_id:1).products // this doesn't seem to work
是否无法以这种方式查询多个项目?基于这种结构从另一个表中查询多个记录的最佳方法是什么?或者我需要更新我的模型结构?我感谢所有的帮助!再次感谢!
答案 0 :(得分:1)
@orders_ids = [1, 5, 6]
Order.where(id: @orders_ids).map{|order| order.products }
它将返回ID为1,5,6的订单产品
在视图中实现此功能:
控制器操作中的:
@orders_ids = [1, 5, 6]
@orders = Order.where(id: @orders_ids)
在html.erb中:
<% @orders.each do |order| %>
<%= order.number %>
<% order.products.each do |product| %>
<%= product.name %>
<% end %>
<% end %>