2016-02-02 81 views
0

我使用rails創建社交網絡應用程序並將其設計爲用戶身份驗證寶石。我有不止一種類型的用戶,不知道如何繼續。Rails爲社交網絡設計用戶體系結構

我userType1和userType2的共同點很少,所以我不知道如果STI是要走的路。

我應該有兩種類型的用戶,從設計用戶繼承或者我應該創建每一個與色器件。

最後,我要創建在用戶類型的所有社會領域或創建這種類型的信息的

任何幫助是極大的讚賞

第一種類型的用戶是有一個顧客輪廓模型基本字段,如名字,姓氏,個人資料照片和家庭地址。

第二種類型的用戶是具有許多其他字段的代理,如名字,姓氏,個人資料照片,商業信息(地址,電話等),專業,類別,標題,網站,社交活動,和其他領域。

這兩者之間的功能差異很大,代理用戶將充當朋友,標籤,創建活動,列表等等,客戶只會創建lsitings,聯繫人代理和搜索列表。

+0

你的問題太廣泛了。我們不知道你有什麼級別的經驗,所以我們給出的任何答案都是在黑暗中拍攝,希望它對你有意義。爲了正確解釋,我們必須從頭開始編寫一個教程並開始工作。請提供更多信息,以便我們不必僅根據猜測發表意見。 –

+0

@theTinMan我已經編輯我的問題有關於用戶模型 –

回答

0

我會認真反思有兩種型號供用戶類型的想法。相反,考慮有一個苗條的用戶模型,並使用關聯(如User.profile,User.details)來保存額外的屬性。通過防止您在設計代碼中尋址不同的「用戶」模型,這將爲您節省很多麻煩。

+0

查看詳細信息,但後來我需要創建兩種類型的配置文件來保存不同類型的屬性爲每個用戶@errata –

+1

這比創建不同的「用戶」類更好這兩個都從Devise IMO繼承。 – errata

+0

我喜歡這個選擇,但是我會如何去做用戶和配置文件之間的關聯。我會讓用戶模型擁有每個配置文件中的一個? @errata –

0

不幸的是,沒有關於用戶模型之間的差異的詳細信息,具體的答案是很難提供,但這裏是一些東西需要考慮:

設計用於處理用戶註冊,登錄和內容管理。

如果您的兩個用戶類型將以相同的方式創建他們的帳戶,以相同的方式簽名或查看大多數相同的內容,則可能不值得擁有兩個模型,因爲可以在模型本身存儲較小的差異。

如果兩個用戶在功能上有很大的不同,然後讓他們分開可能使你的代碼更易讀。如果它們在概念上有很大差異,爲了使您的代碼與您的域模型相匹配,可能還需要單獨購買。

確保考慮兩種不同類型的用戶是如何註冊/登錄的。如果他們打算使用相同的頁面/表單,那麼處理兩種不同的類型將立即變得非常複雜,可能會非常複雜。

+0

我添加了有關模型的更多信息。我旨在讓他們使用相同的表格進行註冊,登錄和其他形式 –