Ruby on rails Rails,用户模型上的自参考关联,用于定义朋友/追随者
我想建立一个友谊协会。我发现并一直遵循教程: 本教程的问题在于没有状态的概念(接受、挂起、忽略) 有没有关于如何创建这种类型的关系的想法,但是有一个状态,所以当你的朋友请求时,它将被挂起,直到正确的用户接受或忽略Ruby on rails Rails,用户模型上的自参考关联,用于定义朋友/追随者,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想建立一个友谊协会。我发现并一直遵循教程: 本教程的问题在于没有状态的概念(接受、挂起、忽略) 有没有关于如何创建这种类型的关系的想法,但是有一个状态,所以当你的朋友请求时,它将被挂起,直到正确的用户接受或忽略 谢谢假设友谊中的两个参与者可能还有其他友谊,那么您需要在某个地方存储此特定友谊的状态。这表明您需要一个连接模型,您可以通过has\u和\u属于\u-many获得该模型。然后,您的状态可以存储在联接表中(在本例中为友谊) class-Person“人”,:通过=>:友谊 结束 类友谊“
谢谢假设友谊中的两个参与者可能还有其他友谊,那么您需要在某个地方存储此特定友谊的状态。这表明您需要一个连接模型,您可以通过has\u和\u属于\u-many获得该模型。然后,您的状态可以存储在联接表中(在本例中为友谊)
class-Person“人”,:通过=>:友谊
结束
类友谊“个人”
属于:friend2,:class\u name=>“个人”
结束
但是,正如你可能注意到的那样,你即将遇到的问题是,你可能希望友谊是一种非直接的关系
这是一个太大的主题,无法在此详述,但这里有一个地方:
最后请注意,虽然友谊是双向的,但友谊请求不是——在请求的情况下,您需要知道是谁发出的,谁收到的。所以我猜你会想要一个双向的友谊关系和一个直接的朋友请求关系。当请求被批准时,该关系将被删除,您将添加双向友谊
class Person< ActiveRecord::Base
has_many :friendships
has_many :friends, :class_name => "Person", :through => :friendships
end
class Friendship < ActiveRecord::Base
belongs_to :friend1, :class_name => "Person"
belongs_to :friend2, :class_name => "Person"
end