在Rails中的两个模型之间从头开始创建跟随/取消关系

时间:2015-03-30 14:46:01

标签: ruby-on-rails ruby activerecord associations

现在我正试图创建单边关注/取消关注关系,用户可以关注/取消关注名人。尽管宝石可用,但我想学习如何从头开始创建。

我在网上找到的帖子似乎只包含一种自我引用的样式,其中模型实例只能跟随其中一种(用户只能跟随其他用户)。作为起点,我已将此post用于初始设置。我不知道如何重新配置​​模型的关联:

class User < ActiveRecord::Base
end

class Following < ActiveRecord::Base
end

class Celebrity < ActiveRecord::Base
end

1 个答案:

答案 0 :(得分:0)

您正在寻找“多对多”的关系。您可以找到有关此关系的更多详细信息here。以您的模型为例,它看起来像这样:

class User < ActiveRecord::Base
  has_many :followings, :dependent => :destroy
  has_many :celebrities, :through => :following
end

class Following < ActiveRecord::Base
  belongs_to :user
  belongs_to :celebrity
end

class Celebrity < ActiveRecord::Base
  has_many :followings, :dependent => :destroy
  has_many :users, :through => :following
end