3
我有一個用戶模式,即可能有許多活動(我跟蹤的一些我的用戶執行的操作,用於統計目的)不知道如何申報此的has_many態關聯
class User < ActiveRecord::Base
has_many :activities
has_many :histories,:through => :activities # ?
end
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :history, :polymorphic => true
end
class BrowsingHistory < ActiveRecord::Base
has_many :activities,:as => :histories
end
class LoginHistory < ActiveRecord::Base
has_many :activities,:as => :histories
end
...
Activity
類有一個history_type:string
,一個history_id:integer
和一個user_id:integer
,我希望它能夠容納BrowsingHistory
或LoginHistory
對象。
我工作很少與多態關聯,從我到目前爲止,我不斷收到錯誤:ActiveRecord::HasManyThroughAssociationPolymorphicSourceError:Cannot have a has_many :through association 'User#histories' on the polymorphic object 'History#history'
。我閱讀了有關這個主題的一些相關問題,但我無法找出解決方案。
編輯:我想我知道了(控制檯測試似乎工作),請你確認一下嗎?
class User < ActiveRecord::Base
has_many :activities
has_many :login_histories,:through => :activities,:source => :history,:source_type => "LoginHistory"
end
class Activity < ActiveRecord::Base
belongs_to :user
belongs_to :history, :polymorphic => true
end
class BrowsingHistory < ActiveRecord::Base
has_many :activities,:as => :history
has_many :users,:through => :activities
end
class LoginHistory < ActiveRecord::Base
has_many :activities,:as => :history
has_many :users,:through => :activities
end