Отношение, переданное в #or, должно быть структурно совместимым.Несовместимые значения: [: joins] - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть это сообщение об ошибке Relation passed to #or must be structurally compatible. Incompatible values: [:joins]

в моей модели пользователя: has_many :orders

в моей модели заказа: belongs_to :user, optional: true

Как я долженнаписать мой запрос, чтобы имена пользователей и идентификатор заказа были в одном и том же поисковом запросе?

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 голосов
/ 02 февраля 2019

Звучит так, будто это известная проблема с .or.Попробуйте использовать SQL или вы можете переопределить .or, как показано в этом ответе: https://stackoverflow.com/a/40742512/10987825

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...