传递给#or的关系必须在结构上兼容。不兼容的值:[:joins]

时间:2019-02-02 14:41:17

标签: sql ruby-on-rails

我有此错误信息 Relation passed to #or must be structurally compatible. Incompatible values: [:joins]

在我的用户模型中:has_many :orders

在我的订单模型中:belongs_to :user, optional: true

我应该如何在同一搜索输入中编写查询以包含用户名和订单ID?

def filter_orders
  return if params[:query].blank?
  @orders = Order.joins(:user).where('lower(users.first_name) LIKE ?', "%#{params[:query][:keyword]}%")
  .or(Order.joins(:user).where('lower(users.last_name) LIKE ?', "%#{params[:query][:keyword]}%"))
  .or(Order.where(id: "#{params[:query][:keyword]}.to_i"))
end

1 个答案:

答案 0 :(得分:0)

听起来issue.or相似。尝试使用SQL或可以重写.or所看到在这个答案:https://stackoverflow.com/a/40742512/10987825