Я уже некоторое время работаю над этим и не могу найти, где там ошибка.
У меня есть модель пользователя (: имя,: пароль,: электронная почта), модель события (: имя,: и т. Д.) И модель интереса (: имя) [> все в единственном числе <] </p>
Затем я создал две таблицы соединения -> UsersInterests и EventsInterests; каждый из которых не содержит первичного ключа и состоит только из user_id / Interest_ID и Event_ID / Interest_id соответственно. [> Множественный <] </p>
Мои модели содержат отношения HABTM следующим образом
user.rb => has_and_belongs_to_many :interests
event.rb => has_and_belongs_to_many :interests
interest.rb => has_and_belongs_to_many :users
has_and_belongs_to_many :events
events_interests.rb => has_and_belongs_to_many :interests
has_and_belongs_to_many :events
users_interests.rb => has_and_belongs_to_many :users
has_and_belongs_to_many :interests
Вот так ... Итак, я хотел создать named_scope для поиска всех событий, которые представляют интерес для определенного пользователя. Вот код, с которым мне кто-то помог.
named_scope :shares_interest_with_user, lambda {|user| { :joins => "LEFT JOIN
events_interests ei ON ei.event_id = Event.id " +
"LEFT JOIN users_interests ui ON ui.interest_id = ei.interest_id",
:conditions => ["ui.user_id = ?", user] }}
Когда я бегу от контроллера =>
@user = User.find(1)
@events = Event.shares_interest_with_user(@user)
Я получаю сообщение об ошибке SQL: «нет такого столбца: Event.id: ВЫБЕРИТЕ« события ». * ИЗ« событий »ВЛЕВО СОЕДИНЯЕТ events_interests 1016 *
Теперь я уверен, что у модели событий есть идентификатор, и я думаю, что у меня все имена столбцов правильные ... кто-нибудь может увидеть, чего не хватает?