Activerecord请求has_many关系为空

时间:2013-02-09 15:36:00

标签: ruby-on-rails postgresql

我正在尝试进行数据库查询,它只返回has_many关系不为空的结果。下面是has_many:gift_images:

的示例
Gift.joins(:gift_images).includes(:gift_images, :comments, :category, :user).select("gifts.*, COUNT(gift_images.id) AS gcount").where("gcount > 0")

类似的东西,但它不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您不能在where语句中使用别名,请尝试以下

Gift.where("(SELECT COUNT(*) FROM gift_images WHERE gift_images.gift_id = gifts.id) > 0")

答案 1 :(得分:1)

我希望尽可能减少数据库查询“SQL-ish”。

Gift.where(id: GiftImage.where('gift_id IS NOT NULL').select('gift_id') ).count