连接后带有 Less/Greater 的Where 子句

2024-05-05

我正在尝试结合一个joins with a where条款,但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)

我得到了我所期望的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接后带有 Less/Greater 的Where 子句 的相关文章

随机推荐