我想避免有人可以使用用戶名'Admin'創建用戶。我使用這個用戶名作爲主機來控制我的應用程序的一些功能。我知道有驗證的模型記錄的唯一性表達:驗證唯一性,但僅當選擇「管理員」作爲用戶名時
validates_uniqueness_of
但我只想說的用戶名「管理員」不能創建兩次。我希望有人有一個想法!由於
我想避免有人可以使用用戶名'Admin'創建用戶。我使用這個用戶名作爲主機來控制我的應用程序的一些功能。我知道有驗證的模型記錄的唯一性表達:驗證唯一性,但僅當選擇「管理員」作爲用戶名時
validates_uniqueness_of
但我只想說的用戶名「管理員」不能創建兩次。我希望有人有一個想法!由於
您可以使用conditionals in your validation做到以下幾點:
class Model
validates :username, uniqueness: true, if: :admin?
def admin?
username.downcase == 'admin'
end
end
隨着中說,他們會拿走我的開發卡,如果我不從這樣氣餒。
僅根據用戶名是否爲admin來設置管理員帳戶正在爲您的安全性設置妥協。看看像ActiveAdmin
這樣的管理您的管理員帳戶,以便他們在至少與您的用戶帳戶分開。
或只是validates_uniqueness_of :username, if: -> {username == 'admin'}
在您的模型。
對不起,我寫了你的代碼到我的模型中,我總是得到錯誤'未定義的方法'管理?'你有任何線索爲什麼? –
@JohnSmith抱歉有一個語法錯誤 - 應該是':admin?' –