gpt4 book ai didi

ruby-on-rails - Rails 3 Distinct 加入 Postgresql

转载 作者:行者123 更新时间:2023-11-29 13:36:29 25 4
gpt4 key购买 nike

使用 Postgresql 9.1 和 Rails 3.2.2。我如何返回给定用户每个场所的最后一个 users_checkins 的集合?

我试过了

User.find(1)
.users_checkins
.joins(:venues_checkins)
.merge(VenuesCheckin.select('DISTINCT(venues_checkins.venue_id)'))

但这不会检索 UsersCheckin 的任何属性。我的模型如下。

class Venue
has_many :venues_checkins
has_many :users_checkins, through: :venues_checkins
end

class UsersCheckin
#start:datetime
#finish:datetime
belongs_to :user
belongs_to :venues_checkin
end

class VenuesCheckin
belongs_to :venue
has_many :users_checkins
end

class User
has_many :users_checkins
has_many :venues_checkins, through: :users_checkins
has_many :venues, through: :users_checkins
end

更新

如果用户在地点 A 有 3 条 users_checkins 记录,在地点 B 有 3 条记录,我的集合应该返回 2 条记录,其中一条记录是地点 A 的最后创建的 users_checkin,另一条记录是地点 B 的最后创建的 users_checkin,带有按集合中第一条记录排序的集合是最后创建这 2 条记录中的哪一条。我从用户开始,因为我只想要给定用户的 users_checkins。

最佳答案

如果您可以编写 SQL 并使其在 psql 提示符下工作,请将其放入 User 类中的自定义方法,并跳过将自定义查询楔入 ORM 的尝试。

此外,听起来您希望在查询中使用最小/最大限定符,而不是不同的。

关于ruby-on-rails - Rails 3 Distinct 加入 Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9573604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com