Rails ActiveRecord- has_many通过并且属于相关模型

时间:2010-03-22 23:29:21

标签: ruby-on-rails activerecord data-modeling

我有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查询。对不起,如果我遗漏了一些基本的东西。

由于

1 个答案:

答案 0 :(得分:0)

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

应该足够了。对?您可以在相同的模型之间建立多个关系,但在发生这种情况时,您会发现在组织目的下明确命名它们非常有用。