2010-03-22 74 views
0

我有3個模型Rails ActiveRecord-has_many通過和belongs_to相關模型

網站,user_favorites和用戶。相關關係:

class Site < ActiveRecord::Base 
    has_many :users, :through => :user_favorites 

class UserFavorite < ActiveRecord::Base 
    belongs_to :user, :counter_cache => true 
    belongs_to :site 
end 

class User < ActiveRecord:Base 
    has_many :user_favorites 
    has_many :sites, :through => :user_favorites 

所有這一切都工作得很好。我想向Site模型添加一個新屬性來指示哪個用戶創建了它。

我不認爲這構成了has_and_belongs_to_many場景。一個網站通過user_favorites有許多用戶,但我希望它屬於反映擁有者/創建者的單個用戶。

我想知道ORM的最佳做法是什麼。 SQL明智我只是使用不同的連接,這取決於我想用站點中的created_by FK查詢的內容。對不起,如果我在這裏缺少一些基本的東西

感謝

回答

0
class Site < ActiveRecord::Base 
    belongs_to :creator, :class_name => 'User' 
    # ... 
end 

應該足夠了。對?您可以在相同的模型之間建立多種關係,但您會發現,在組織目的中,如果明確命名這些模型,則會非常有利。

+0

完美的作品,非常有意義。感謝幫助仍然讓我的頭在ORM附近。 – Nick 2010-03-22 23:37:39

相關問題