以下是我要做的事情:
Product.first.reviews.includes(:comments).where('comments.reply_to_id=?', nil)
所以基本上我想加载产品评论以及任何相关评论。
评论属于评论,不属于产品。
这是错误:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'comments.reply_to_id' in 'where clause': SELECT `reviews`.* FROM `reviews` WHERE `reviews`.`product_id` = 8 AND (comments.reply_to_id=NULL)
来自schema.rb
:
create_table "comments", force: :cascade do |t|
...
t.integer "reply_to_id", limit: 4
end
答案 0 :(得分:2)
来自API
如果您想为所包含的模型添加条件,则必须这样做 明确引用
当您使用.references
条件
includes
Product.first.reviews.includes(:comments).where('comments.reply_to_id=?', nil).references(:comments)
答案 1 :(得分:2)
@pavan是对的。但您可以使用Hash
语法自动找到它。
Product
.first
.reviews
.includes(:comments)
.where(comments: { reply_to_id: nil })