【发布时间】:2010-12-25 21:49:46
【问题描述】:
我遇到了一个现有的ActiveRecord::Observer 模型的问题,该模型记录了User 站点的各种Activities。一切都运行良好,直到我尝试使用与 observe 其他模型相同的 Activity 模型来 observe User 类。考虑一下:
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 的行。一旦我将:user 添加到ActivityObserver 中的observe 方法并将User 模型中的has_many :activities 更改为has_many :activities, :as => :item,User.activities 将只返回与User 相关的活动的行实例和不是任何Comments
这是为什么?我该怎么做才能让它按预期工作?
【问题讨论】:
标签: ruby-on-rails ruby activerecord polymorphism observers