关于连接的where子句的Activerecord语法

时间:2014-07-23 13:32:41

标签: ruby-on-rails ruby activerecord

我想选择所有在两个日期之间创建订单的订单项(订单包含列日期)

这就是我想要做的事情

LineItem.where(:product_id => self.id).joins(:order).where(:orders => {"date > ? and date < ?", date_start, date_end}).all

我无法弄清楚最后一个条件的语法...... 我知道这种工作在哪里:

.where("date > ? and date < ?", date_start, date_end)

还有这样的地方:

.where(:orders => {:id => 23043})

但我怎么能混合这两种,所以我可以得到类似第一个请求的东西?

2 个答案:

答案 0 :(得分:5)

试试这个

.where(:date => date_start..date_end, :order => {:id => 23043})

答案 1 :(得分:2)

您可以将子句链接在一起,它会自动将它们与AND:

连接起来
.where("date > ? and date < ?", date_start, date_end). 
  where(:orders => {:id => 23043})