Rails从关联中加入值

时间:2015-05-12 05:40:01

标签: ruby-on-rails postgresql join

我有两个模型组和项目

class Group < ActiveRecord::Base
    has_many :items
end

class Item < ActiveRecord::Base
    belongs_to :group
end

我的查询

Group.joins(:items).select('items.created_at AS item_created_at, groups.*').where("items.created_at > ?", time) 

我需要在字段&#39; item_created_at&#39;中加载uniq组。像MAX(items.created_at)

2 个答案:

答案 0 :(得分:0)

你的意思是: Group.joins(:items).select('max(items.created_at),groups。*')。references(:items)?

不确定这是否是您想要的,但我认为这会获取所有群组及其最新项目'created_at。

答案 1 :(得分:0)

可能会继续工作,

g = Group.joins(:items).select('MAX(items.created_at) AS item_created_at, groups.*').group('items.group_id').having("items.created_at > ?", time)

现在gitem_created_at

中包含max created_at项目的群组提供了帮助
puts g.map(&:item_created_at)