簡體   English   中英

Rails,用戶模型上的自引用關聯,用於定義朋友/關注者

[英]Rails, self-referential association on the User model to define friends/followers

我正在嘗試建立一個友誼協會。 我發現並一直在遵循該教程:

http://railscasts.com/episodes/163-self-referential-association

教程的問題是沒有狀態的概念(接受,待處理,已忽略)

關於如何建立這種類型的關系但具有狀態的任何想法,因此當您朋友請求時,它正在等待,直到正確的用戶接受或忽略為止?

謝謝

假設友誼的兩個參與者也可能還有其他友誼,那么您需要在某個地方存儲這種特殊友誼的狀態。 這表明您需要可以通過has_and_belongs_to_many獲得的聯接模型。 然后,您的狀態可以存儲在聯接表中(在這種情況下為友誼)

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

但是,正如您可能從笨拙的friend1和friend2中注意到的那樣,您將要遇到的問題是您可能希望將Friendship作為非直接關系。

這是一個太大的話題,在這里無法詳細說明,但這里要解決的地方是: 我從未真正使用過的有前途的文章

最后,請注意,雖然友誼是雙向的,但友誼請求不是雙向的-在請求的情況下,您需要知道是誰發出的以及誰收到的。 因此,我想您會需要雙向的友誼關系和直接定向的friend_request關系。 批准請求后,該關系將被刪除,並且您將添加雙向友誼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM