gpt4 book ai didi

ruby-on-rails - 使用 activerecord 获取正确的用户

转载 作者:行者123 更新时间:2023-12-04 06:17:50 28 4
gpt4 key购买 nike

目前我有一个包含 10,000 个要搜索的用户的表。我还有另一个我已批准的 3 个用户表。我想让搜索结果只返回 9997 个用户。换句话说,如果我批准了一个用户,我不希望他们出现在搜索结果中。这是我到目前为止的代码:

approved_users = Approval.where(user_id: logged_in_user.id) 
approved_user_ids = approved_users.map { |user| user.approved_user_id}
pre_search_results = User.find_by_sql("SELECT *
FROM users LEFT JOIN approvals
ON users.id = approvals.approved_user_id
WHERE name LIKE ? OR operator_id LIKE ?"
)

当我手动添加 3 个用户时,第一个语句 approved_users 返回这个:

id: 10, user_id: 39, approved_user_id: 37
id: 11, user_id: 39, approved_user_id: 35>,
id: 12, user_id: 39, approved_user_id: 41>

然后我让 approved_user_ids 只给我上面语句的 id 部分,所以它返回这个:

[37, 35, 41]

现在,我希望 pre_search_results 返回 9997 个其他用户,我有上面的语句。它目前没有返回任何内容。任何想法可以做什么?

最佳答案

要获取 ID 不在 approved_user_ids 中的所有用户,您可以使用:pre_search_results = User.where("id NOT IN (?)", approved_user_ids)

关于ruby-on-rails - 使用 activerecord 获取正确的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33377282/

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