我遇到了現有的ActiveRecord::Observer
模型的問題,該模型記錄了User
網站的各種Activities
。一切都很好,直到我試圖observe
User
類與Activity
模型,它使用observe
其他模型。考慮到:Rails用戶模型has_many活動(觀察者),但也應該被觀察到
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
以上工作正常。對User.activities
的查詢將返回行Comment
Activities
。當我在ActivityObserver
添加:user
到observe
方法,並在User
模型改變has_many :activities
到has_many :activities, :as => :item
,User.activities
只返回了屬於那個User
實例活動行和不任何Comments
這是爲什麼?我能做些什麼來按預期工作?