我有3个模特
网站,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
所有这一切都很好。我想为站点模型添加一个新属性,以指示哪个用户创建了它。
我不相信这构成了has_and_belongs_to_many场景。一个网站通过user_favorites拥有许多用户,但我希望它属于反映所有者/创建者的单个用户。
我想知道ORM的最佳做法是什么。 SQL明智的我只是使用不同的连接,这取决于我试图用Site中的created_by FK查询。对不起,如果我遗漏了一些基本的东西。
由于
答案 0 :(得分:0)
class Site < ActiveRecord::Base
belongs_to :creator, :class_name => 'User'
# ...
end
应该足够了。对?您可以在相同的模型之间建立多个关系,但在发生这种情况时,您会发现在组织目的下明确命名它们非常有用。