Je rencontre un problème avec un modèle ActiveRecord::Observer
existant qui enregistre divers Activities
d'un User
le site. Tout fonctionnait très bien, jusqu'à ce que j'essaie de observe
la classe User
avec le même modèle Activity
qu'elle utilise pour observe
autres modèles. Considérons que:Rails Le modèle d'utilisateur has_many activités (observateur) mais devrait également être observé
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :item, :polymorphic => true
end
class ActivityObserver < ActiveRecord::Observer
observe :billing, :call, :vanity_number
end
class User < ActiveRecord::Base
has_many :comments
has_many :activities
end
class Comment < ActiveRecord::Base
belongs_to :user
has_many :activities, :as => :item
end
Ce qui précède a bien fonctionné. Une requête pour User.activities
retournera des lignes de Comment
Activities
. Dès que j'ai ajouté :user
la méthode observe
dans ActivityObserver
et changé has_many :activities
dans le modèle User
à has_many :activities, :as => :item
, User.activities
ne ferait que renvoyer les lignes qui étaient des activités se rapportant à cette instance et User
ne aucune Comments
Pourquoi? Que puis-je faire pour que cela fonctionne comme prévu?