我试图将joins
和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)?
答案 0 :(得分:1)
我以为我之前尝试过这个,但显然这种语法有效:
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
submit() {
Ember.$('.modal').modal('show');
},
},
});
我得到了我期望的结果。
答案 1 :(得分:-1)
语法应该是:
... .where(groups: ["vote_deadline_at <= ?",Time.now] )