gpt4 book ai didi

ruby-on-rails - Where 子句小于/大于连接后

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:28 25 4
gpt4 key购买 nike

我正在尝试合并 joinswhere子句但 where子句不测试相等性,它测试大于或等于。

我知道在标准 where 子句中,我可以这样做:

Group.where("vote_deadline_at <= ?", Time.now)

查找投票截止日期在未来的所有组。

但是,如果这发生在 joins 之后怎么办? ,像这样:

User.likes.where(liked_type: "Post").joins("INNER JOIN posts ON posts.id = liked_id").where(posts: {context_type:"Group"}).joins("INNER JOIN groups ON groups.id = posts.context_id").where(groups: {"vote_deadline_at <= ?",Time.now})

一切直到决赛 where(groups: {"vote_deadline_at <= ?",Time.now})条款工作正常。它返回 186 行的 ActiveRecord 集合。但是,当我添加最后一个 where子句,我得到错误:

SyntaxError: unexpected '}', expecting end-of-input
...ote_deadline_at <= ?",Time.now})

有什么方法可以使用 where 子句进一步过滤我的结果,该子句仅选择 groups.vote_deadline_at 所在的行是在未来(即小于或等于 Time.now)?

最佳答案

我以为我以前试过这个,但显然这个语法有效:

u.likes.where(liked_type: "Post").joins("INNER JOIN posts ON posts.id = liked_id").where(posts: {context_type:"Group"}).joins("INNER JOIN groups ON groups.id = posts.context_id").where("groups.vote_deadline_at <= ?",Time.now)

我得到了我预期的结果。

关于ruby-on-rails - Where 子句小于/大于连接后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42521885/

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