У меня есть модель пользователя (: имя, : пароль, : электронная почта), модель событий (: имя, : и т. д.) и модель интересов (: имя) [> все в единственном числе‹]
Затем я создал две таблицы соединений -> UsersInterests и EventsInterests; каждый из них не содержит первичного ключа и состоит только из user_id/interest_id и event_id/interest_id соответственно. [>множественное число‹]
В моих моделях используется вложенный подключаемый модуль Has Many Through
user.rb => has_many :users_interests
has_many :interests, :through => :users_interests
has_many :events_interests, :through => :interests
has_many :events, :through => :events_interests
event.rb => has_many :events_interests
has_many :interests, :through => :events_interests
has_many :users_interests, :through => :interests
has_many :users, :through => :users_interests
interest.rb => has_and_belongs_to_many :users
has_and_belongs_to_many :events
events_interests.rb => belongs_to :interests
belongs_to :events
users_interests.rb => belongs_to :users
belongs_to :interests
Уф... хорошо, поэтому я хотел создать named_scope для поиска всех событий, которые интересуют определенного пользователя. Вот код, с которым мне кто-то помог.
named_scope :shares_interest_with_users, lambda {|user|
{ :joins => :users_interests,
:conditions => {:users_interests => {:user_id => user}}
}}
Когда я запускаю с контроллера =>
@user = User.find(1)
@events = Event.shares_interest_with_user(@user)
Я получаю сообщение об ошибке:
uninitialized constant Event::EventsInterest
Кто-нибудь может увидеть, что я напутал?