2011-11-03 58 views
0

如果一個用戶有很多東西,而某個東西有很多統計信息,看起來只有Rails-y的方式來通過用戶公開統計信息。通過父項暴露has_many - > has_many的關聯?

class User < ActiveRecord::Base 
    has_many :things do 
    def stats 
     Stat.where(thing_id: proxy_association.owner.things_id) 
    end 
    end 
end 

class Thing < ActiveRecord::Base 
    belongs_to :user 
    has_many :stats 
end 

class Stat < ActiveRecord::Base 
    belongs_to :thing 
    has_one :user, through: :thing 
end 

User.first.things.stats == Stat.where(thing_id: User.first.thing_ids) 

我試圖確定是否有任何其他選項。有人在我的球隊抱怨,這不自然的感覺。我覺得這是你可以設計的關係中最自然的表達。

有沒有人有更好的建議?我會說,我嘗試過實例方法,但他們聞不到對。

回答