我一直在這個工作了一段時間,我似乎無法找到哪裏有錯誤。HABTM關係和命名範圍
我有一個用戶模型
然後創建[所有奇異<>(:名稱,:密碼:電子郵件)和事件模型(:名稱,:等)和利息模型(名稱)兩個連接表 - > UsersInterests和EventsInterests;每個不包含主鍵並且分別僅由user_id/interest_id和event_id/interest_id組成。 [>複數<]
我的模型包含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
Whew..ok所以我想創造一個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:選擇 「事件」。* FROM 「事件」 LEFT JOIN events_interests ei ON ei.event_id = ...........「
現在我確定事件模型有一個id,我想我有所有的列名稱..任何人都可以看到什麼是失蹤?