2013-08-28 72 views
0

如何用多種型號設置設計? 我已經嘗試過使用rolify和cancan在我的數據庫中設置單獨的角色,但是每個角色都有不同的方式來驗證自己的登錄身份。例如,學生將有一個student_number,講師將有一個用戶名,但沒有student_number。 另外還有一些其他的屬性,講師不會有一個學生會,反之亦然。用多種型號設計

我新的軌道4

+1

您是否嘗試使用多個模型進行身份驗證,並使用具有某些重疊屬性集的模型進行身份驗證? – tyler

+0

嘿,是的,就像一個類似的屬性,但它們是完全不同的模型。我正在考慮用繼承來解決它,但唯一的問題是身份驗證。我將如何驗證這兩個模型具有完全不同的屬性,student_number和用戶名。當我認爲如果我從用戶(同時擁有student_number和用戶名)繼承,其中一個將在註冊時留空,並且設計可能會抱怨它... –

+0

https://github.com/plataformatec/設計#配置 - 多模 – Santhosh

回答

1

它看起來像類和繼承在這種情況下都得心應手。 如何定義用戶模式,並讓學生和講師繼承該類?

class Student < User 
    # student's peculiar attributes 
end 

class Lecturer < User 
    # lecturer's peculiar attributes 
end 

然後你可以有兩個單獨的控制器和相應的視圖。登錄頁面可能有兩個鏈接到正確的登錄頁面。

+0

謝謝!這是一個很好的解決方案,但我如何才能設計使用他們的用戶名來驗證student_number和講師的身份?我這樣問是因爲,講師不會有student_number,因此我不能在數據庫中將其留空...... –

+0

如果學生沒有用戶名,可以通過用戶名字段驗證用戶身份的學生將其默認設置爲他們的學號。 – Miotsu

0

,我決定用一個用戶模型,並連接到用戶「HAS_ONE」剖面模型的這個問題,所有用戶登錄使用相同的表,但設計負荷保存在檔案另一個數據。

其他選項是當用戶不是一個學生只使用用戶模型,並留下student_number空。