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

相关问题