rails 4 - postgres查询语法

时间:2014-03-27 20:42:30

标签: ruby-on-rails postgresql activerecord ruby-on-rails-4

我正在开发一个rails 4演示应用程序,我被一个activerecord查询难倒。

有两个主要表:widgetsorders。客户可以为order输入价格可变的widgets。在网站管理员结束交易并为final_price设置widget之前,widgets.final_priceNULL并且订单仍处于打开状态。

我想选择已关闭的订单,所以我写了这样的东西:

@closed = Order.joins(:widget).where("orders.buyer_id = :user_id AND widgets.final_price IS NOT NULL", {user_id: current_user}) 

在我的rails日志中,这样查询DB:

SELECT COUNT(*) FROM "orders" INNER JOIN "widgets" ON "widgets"."id" = "orders"."widget_id" WHERE (orders.buyer_id = 2 AND widgets.final_price IS NOT NULL)

但是,目前widgets都没有最终价格 - 我在postresql管理员中验证了这一点,查询:

SELECT * FROM "widgets" WHERE widgets.final_price IS NOT NULL // returns 0 results

然而,在上面的activerecord查询中,@closed.count返回5,@closed.inspect显示5条记录。当我确认widget.final_price

没有值时,怎么会这样呢?

0 个答案:

没有答案