誰かが「Admin」というユーザー名でユーザーを作成できないようにしたいのです。このユーザー名をホストとして使用して、アプリケーションのいくつかの機能を制御します。モデル レコードの一意性を検証する式があることは知っています。
validates_uniqueness_of
しかし、ユーザー名「管理者」を2回作成できないようにしたいだけです。誰かがアイデアを持っていることを願っています!ありがとう
誰かが「Admin」というユーザー名でユーザーを作成できないようにしたいのです。このユーザー名をホストとして使用して、アプリケーションのいくつかの機能を制御します。モデル レコードの一意性を検証する式があることは知っています。
validates_uniqueness_of
しかし、ユーザー名「管理者」を2回作成できないようにしたいだけです。誰かがアイデアを持っていることを願っています!ありがとう
検証で条件を使用して、次のことを行うことができます。
class Model
validates :username, uniqueness: true, if: :admin?
def admin?
username.downcase == 'admin'
end
end
そうは言っても、私があなたにこれをやめさせなければ、彼らは私の開発者カードを奪うでしょう.
ユーザー名が管理者であるかどうかだけに基づいて管理者アカウントを作成すると、セキュリティが侵害される可能性があります。ActiveAdmin
管理者アカウントを管理して、少なくともユーザー アカウントから分離するようなものを見てください。
または validates_uniqueness_of :username, if: -> {username == 'admin'}
、モデル内だけです。