【发布时间】:2017-02-03 22:44:39
【问题描述】:
将 SQL 查询转换为 ActiveRecord 时遇到问题。这是我的域建模的简化版本:
用户 # has_many :baskets
购物篮# date:date, user_id:integer - 有很多:line_items, belongs_to :user
LineItem #数量:整数 - belongs_to :basket
我可以在 SQL 中执行以下查询:
SELECT baskets.date, SUM(line_items.quantity) from baskets
INNER JOIN line_items ON line_items.basket_id = basket.id
WHERE baskets.user_id = 2
GROUP BY baskets.id
ORDER BY baskets.date DESC
在 PGAdmin 中运行此查询时,我得到了我想要的两列:购物篮日期和与该特定购物篮关联的所有 line_item 数量的总和。
但是,当我尝试为相同的数据编写 activerecord 查询时:
User.find(2).baskets
.select('baskets.date,'SUM(line_items.quantity)')
.joins(:line_items)
.group('baskets.id')
.order('baskets.date desc')
它返回购物篮日期,但不返回分组 line_item 数量的总和。理想情况下,我希望得到以下格式的结果,例如 { date=>quantity, date=>quantity ... },但不知道如何到达那里。
【问题讨论】:
标签: sql ruby-on-rails rails-activerecord