gpt4 book ai didi

ruby-on-rails - 如何毫无异常(exception)地选择Array Rails ActiveRecord中的ID

转载 作者:行者123 更新时间:2023-12-03 04:31:10 25 4
gpt4 key购买 nike

当我有 id 数组时,例如

ids = [2,3,5]

我表演

Comment.find(ids)

一切正常。但是当 id 不存在时,我会得到一个异常。当我获得与某些过滤器匹配的 ID 列表并且我执行类似的操作时,通常会发生这种情况

current_user.comments.find(ids)

这次我可能有一个有效的评论 ID,但它不属于给定的用户,因此找不到它,并且出现异常。

我尝试过 find(:all, ids),但它返回所有记录。

我现在能做到的唯一方法是

current_user.comments.select { |c| ids.include?(c.id) }

但在我看来,这似乎是非常低效的解决方案。

有没有更好的方法来选择数组中的ID,而不会在不存在的记录上出现异常?

最佳答案

如果只是避免您担心的异常,“find_all_by..”系列函数可以正常工作而不会引发异常。

Comment.find_all_by_id([2, 3, 5])

即使某些 id 不存在也能正常工作。这适用于

user.comments.find_all_by_id(potentially_nonexistent_ids)

还有案例。

更新:Rails 4

Comment.where(id: [2, 3, 5])

关于ruby-on-rails - 如何毫无异常(exception)地选择Array Rails ActiveRecord中的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1441791/

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