我想检索包含特定关键字的所有评论
但它也必须是积极的用户评论
可以通过user_ids = User.all
检索活动用户
所以我这样编码但是我得到了错误。我该如何解决这个问题?
user_ids = User.all
commentable = User.base_class.name.to_s
@comments = Comment.where('user_id=? AND commentable_type=? AND body like ?', user_ids, commentable, "%"+params[:search]+"%").order('created_at DESC').page(params[:page]).per(10)
错误消息
Mysql2::Error: Operand should contain 1 column(s)
答案 0 :(得分:1)
你的user_ids是一个数组。在查询中使用IN代替=。
@comments = Comment.where('user_id IN (?) AND commentable_type=? AND body like ?', user_ids.map(&:id), commentable, "%"+params[:search]+"%").order('created_at DESC').page(params[:page]).per(10)
答案 1 :(得分:0)
user_ids = User.pluck(:id)
commentable = User.base_class.name.to_s
@comments = Comment.where('user_id IN (?) AND commentable_type = ? AND body like ?', user_ids, commentable, "%"+params[:search]+"%").order('created_at DESC').page(params[:page]).per(10)
以上查询将为您提供所需的结果