ユーザーモデル(:name、:password、:email)、イベントモデル(:name、:etc)、インタレストモデル(:name)[> all singular <]
次に、2つの結合テーブル->UsersInterestsとEventsInterestsを作成しました。それぞれに主キーは含まれず、それぞれuser_id/interest_idとevent_id/interest_idのみで構成されます。[>複数形<]
私のモデルは、 ネストされたプラグインを介して多くを使用します
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
Whew..okそこで、特定のユーザーと関心を共有するすべてのイベントを検索する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
誰かが私が台無しにしたものを見ることができますか?