我有一個用戶模型,在該模型中我有角色(admin和general)。我正在使用Devise https://github.com/plataformatec/devise和CanCan https://github.com/ryanb/cancan。Rails:一個用戶模型,但在註冊時需要不同的信息
admin在註冊時創建主帳戶,然後可以註冊其他用戶並編輯他們的帳戶。這工作。
最後,我改變了它,以便用戶可以使用他們的用戶名登錄,而不是電子郵件,因爲電子郵件對於一般用戶來說不是必需的。
我目前的(主要)註冊表格(僅供管理員使用)需要以下信息:名字;姓氏:電子郵件;用戶名和密碼。我知道,我必須驗證某些字段,並使用戶名和電子郵件是唯一的。我都知道該怎麼做。
用戶模型
validates :username, :email, :password, presence: true
DB MIGRATE
add_index :users, :email, :unique => true
我的問題是,當管理創建了其他用戶的郵件是不適用的,也是我想包括附加領域。由於電子郵件不是必需的,並且由於我使用的是單一用戶模型,因此驗證該字段或使其唯一不起作用。或者我不認爲它會起作用?
如果我不想分開模型是他們的另一個方向,我可以通過這個方法來解決問題。我在考慮兩種註冊表格 - 但仍然存在驗證和唯一性問題。
任何指導,將不勝感激。
settheline:感謝您的反饋意見 - 我傾向於創建單獨的設計視圖 - 但電子郵件的問題仍然是困擾我的一個問題---不幸在昨晚考慮後 - 雖然我不想做到這一點 - 我沒有看到我有兩個獨立的模型 - 我想我希望有一個Hale Mary - 如果我走「僞造」電子郵件的路線,一切都變得雜亂無章 - 我想在漫長的運行我會踢自己 - 所以除非其他人有另一種選擇,我將不得不將其添加到我的成長列表---一步向前走兩步--- – user1648020
我不知道如何有一個額外的列在您的用戶table:'email'實際上會比分成兩個模型更加複雜或複雜,但是你會比我更瞭解你的應用程序。(;祝你好運。 – settheline
有額外的列不是問題,現在我已經有了 - 我不清楚 - 但是如果我走你的路線 - 那個專欄將會有「真實」的電子郵件給管理員,給其他用戶「僞造」電子郵件 - 你不認爲這可能會導致問題還是你認爲我過度思考?我知道有時候會這樣做 – user1648020