gpt4 book ai didi

ruby-on-rails - Rails where 条件和顺序

转载 作者:行者123 更新时间:2023-12-01 13:47:23 24 4
gpt4 key购买 nike

知道默认情况下 Rails 按 ID 对数据排序,我如何按给 where 子句的 id 排序?

ids = Bookmark.where(user_id: 7).order(created_at: :desc).pluck(:company_id)

结果:

[146, 140, 128, 4, 2]



现在,当我尝试从 ids 以相同的顺序获取公司时
Company.where(id: ids).pluck(:id)

结果:

[2, 4, 128, 140, 146]



预期结果 :

[146, 140, 128, 4, 2]



我假装的结果在两种情况下都是一样的(相同的顺序)。
这些公司的返回顺序应与创建该公司的书签的顺序相同。

最佳答案

所以看起来给定一个用户 ID,你想要一个按 created_at 排序的公司列表。加入用户和公司的书签的日期。

假设用户和公司通过书签共享多对多关系,我是否正确?

如果是这种情况,以下“加入”可能适合您!

Company.joins(:bookmarks).where('bookmarks.user_id = ?', 7).order('bookmarks.created_at')

当然,在您的代码中,这可以推广到为任何用户抓取公司!
user_id = 42
companies = Company.joins(:bookmarks).where('bookmarks.user_id = ?', user_id).order('bookmarks.created_at')

ActiveRecord "joins" reference

关于ruby-on-rails - Rails where 条件和顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909058/

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