我正在尝试结合一个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(使用前将#替换为@)