У меня есть модели Пользователь
class User < ActiveRecord::Base
has_many :ratings
has_many :rated_films, :through => :ratings, :source => :film
end
и фильмы
class Film < ActiveRecord::Base
has_many :users, :through => :ratings
end
Я ищу, чтобы найти все фильмы, которые не были оценены указанным пользователем, что-то вроде
class Film < ActiveRecord::Base
has_many :users, :through => :ratings
named_scope :not_rated_by_user, lambda { |user|
{:joins => :users, :conditions => ['? NOT IN users', user]}
}
end
Film.not_rated_by_user(User.first)
Я не очень хорошо знаком с SQL, поэтому не совсем уверен, что это может быть достигнуто в именованной области.
Большое спасибо
Юрий