J'ai un modèle utilisateur (: nom,: mot de passe,: email), et le modèle d'événement (: nom,: etc) et modèle d'intérêt (: nom) Puis j'ai créé deux tables de jointure -> UsersInterests et EventsInterests; chacun ne contenant pas de clé primaire et composé uniquement de l'id_utilisateur/de l'intérêt et de l'id_événement/de l'intérêt respectivement. [>] Pluriel <imbriqué a beaucoup par le biais de plugin et portées
Mes modèles Utilisez le Nested Has Many Through Plugin
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 Je voulais donc créé un named_scope de ce trouver tous les événements qui partagent un intérêt à un utilisateur particulier. Voici un code avec lequel quelqu'un m'a aidé.
named_scope :shares_interest_with_users, lambda {|user|
{ :joins => :users_interests,
:conditions => {:users_interests => {:user_id => user}}
}}
Quand je lance du contrôleur =>
@user = User.find(1)
@events = Event.shares_interest_with_user(@user)
Je reçois l'erreur:
uninitialized constant Event::EventsInterest
Quelqu'un peut-il voir ce que je foiré?