提问人:Bax STAR 提问时间:7/20/2023 更新时间:7/21/2023 访问量:53
在 ruby rails 中,有没有一种方法可以获取 where 方法范围之外的对象?
In ruby rails, is there a method to get the objects outside of a where method's scope?
问:
对于上下文,基本上我试图找出哪些用户没有特定的帖子,例如:
@specified = User.joins(:post).where(post: {content: "Goodbye!"})
与我想要得到的(基本上只是不包括在内的每个用户)
!@specified
我试着否定它,但它不起作用,有没有解决方案?
答:
1赞
Alex
7/21/2023
#1
如果用户有多个帖子,这将为您提供重复的用户,并跳过没有帖子的用户:
User.joins(:post) # should it be :posts?
你找到了你不想要的东西:
User.joins(:post).where(post: {content: "Goodbye!"})
not
只过滤掉有“再见!”的帖子,如果用户有其他帖子,则该用户将被包含在结果中:
User.joins(:post).where.not(post: {content: "Goodbye!"})
简单的出路是否定整个事情:
User.where.not(
id: User.joins(:post).where(post: {content: "Goodbye!"})
)
评论
0赞
Bax STAR
7/21/2023
这就是我一直在寻找的,它工作得很好!谢谢!
评论
.not
@specified = User.joins(:post).where.not(post: {content: "Goodbye!"})