繁体   English   中英

has_many与计数值的关联

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM