У меня есть следующая область видимости в модели Rails.Где НЕ IN() на соединении?
class Suggestion < ActiveRecord::Base
has_many :favourites
def self.favoured_by(user)
joins(:favourites).where(favourites: { user_id: user.id })
end
end
Это работает отлично. Он вернет все предложения, которые особый пользователь получил.
Как я могу получить все предложения, которые либо не предназначены для всех или которые используются, а не этим конкретным пользователем?
def self.not_favoured_by(user)
# ...
end
Моя Favourite
модель выглядит следующим образом:
class Favourite < ActiveRecord::Base
belongs_to :suggestion
belongs_to :user
end
Не могли бы вы также разместить свой 'favourite' модель? –
Почему вы не делаете связь has_many trough вместо этого соединения? –
@ismaelga @PaulSimpson Я добавил свою модель «Фаворит» к OP. 'Favourite' должен быть моделью объединения между' User' и 'Suggestion', потому что пользователь может использовать любимые предложения, принадлежащие другим пользователям. –