@IvanN777

Конфликт scope при joine одной таблицы, что делать?

В модели из задач с юзерами есть 2 связи.
belongs_to :initiator, :class_name => 'User', :foreign_key => 'initiator_id'
belongs_to :designer, :class_name => 'User', :foreign_key => 'designer_id'

И два scope
scope :initiator_filter, ->(name){ joins(:initiator).where("users.name LIKE ?", "%#{name}%")  unless name.nil? }
 scope :designer_filter, ->(name){ joins(:designer).where("users.name LIKE ?", "%#{name}%")  unless name.nil? }

При раздельной работе оба они работают.
Вместе возникает конфликт и работает последний.
Это происходит из-за того, что join к одной таблице, но я не знаю как исправить.(
  • Вопрос задан
  • 2218 просмотров
Решения вопроса 1
@vsuhachev
joins('users initiators on initiators.id = initiator_id').where('initiators.name LIKE ...')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@IvanN777 Автор вопроса
Единственное join надо поставить спереди
joins('LEFT JOIN users designers on designers.id = designer_id')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы