在 Rails 中的两个模型之间从头开始创建 follow/unfollow 关系

Creating a follow/unfollow relationship from scratch between two models in Rails

现在我正在尝试创建一种单方面 follow/unfollow 关系,用户可以在其中 follow/unfollow 名人。尽管有可用的宝石,但我想学习如何从头开始创建它。

我在网上找到的帖子似乎只包含一种自我引用的风格,其中模型实例只能关注其中一个(一个用户只能关注其他用户)。作为起点,我使用此 post 进行初始设置。我只是不确定如何重新配置​​模型的关联:

class User < ActiveRecord::Base
end

class Following < ActiveRecord::Base
end

class Celebrity < ActiveRecord::Base
end

您正在寻找 "many to many" 关系。您可以找到有关此关系的更多详细信息 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