2017-08-03 54 views
0

我想存儲用戶的社交個人資料鏈接:臉譜,YouTube,Instagram等等。是否有已經設置此模型的寶石,還是應該創建自己的?Rails社交鏈接模型

如果我必須自己創建,我會創建一個多態模型/遷移並重新使用用戶,企業,事件等之間的可共享鏈接。由於這些鏈接通常很小,因此每一列都是字符串數據類型。

回答

1

取決於您要存儲多少信息,例如,可以將這些列直接添加到用戶模型(如「facebook_url」,「twitter_url」)中。但如果它更復雜一些,你可以創建另一個模型並進行關係。

類似:

rails g model SocialNetwork name:string 

那麼對於用戶和社交網絡之間的N×N的關係的表:

rails g model UserSocialNetwork user:references social_network:references profile_url:string 

的任何信息你可能需要。然後,在你的User.rb

has_many :user_social_networks 
has_many :social_networks, through: :user_social_networks 

,並在您SocialNetwork.rb

has_many :user_social_networks 
has_many :users, through: :user_social_networks 

希望這會有所幫助,祝你好運!

+0

我想我會堅持多態關係,但我很欣賞看到你對此事的看法。很高興知道沒有這樣做的網絡傳播標準化方式(通過寶石)。 –