在 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
现在我正在尝试创建一种单方面 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