[英]has_many association with count values
# == Schema Information
#
# Table name: orders
#
# id :integer not null, primary key
# order_name :string(255)
# payment_mode :string(255)
# total_cost :integer default(0)
# user_id :integer
# created_at :datetime
# updated_at :datetime
#
class Order < ActiveRecord::Base
has_many :order_items, dependent: :destroy
belongs_to :user
end
# == Schema Information
#
# Table name: order_items
#
# id :integer not null, primary key
# order_id :integer
# product_id :integer
# quantity :integer
# total_price :integer default(0)
# created_at :datetime
# updated_at :datetime
#
class OrderItem < ActiveRecord::Base
belongs_to :order
end
我的预期输出应类似于订单名称,total_cost以及每个订单的产品计数。
如何使用活动记录来实现这一目标。
我尝试了以下
Order.select("orders.*,count(order_items.product_id) as product_count").joins(:order_items)
尝试以下查询将结果作为哈希值提供,您可以达到预期的结果。 只需验证您的关系和表名
OrderItem.joins(:order).select("orders.order_name as order_name,orders.total_cost as total_cost, count(*) as product_count").group(:order_id).as_json
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.