gpt4 book ai didi

sql - Ruby on Rails : #any? 返回错误值

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:44 24 4
gpt4 key购买 nike

在我的模型中,我有用户 ( User ) 和故事 ( Story ),关系为:user has_many stories .

我注意到我的 shell 中有一些奇怪的东西:

(dev) user.stories.any?
=> true

(dev) user.stories
Story Load (1.6ms) SELECT "stories".* FROM "stories" WHERE "stories"."user_id" = 703 ORDER BY created_at ASC [["user_id", 703]]
=> []

(dev) user.stories.any?
=> false

这是如何运作的?这是由于我的代码造成的,还是 Rails 中的某种错误及其查询数据库的方式?

最佳答案

我找到的解决方法(感谢@house9)是使用:

user.stories.to_a.any?
user.stories.to_a.empty? # also works with empty?

这样,Rails 就被迫进行查询。而且开销非常低,因为执行 to_a.any? 多次只执行一次查询。

或者更好,如@Jordan 建议的那样,使用:

user.stories.exists?

关于sql - Ruby on Rails : #any? 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34496136/

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