0

誰かが「Admin」というユーザー名でユーザーを作成できないようにしたいのです。このユーザー名をホストとして使用して、アプリケーションのいくつかの機能を制御します。モデル レコードの一意性を検証する式があることは知っています。

validates_uniqueness_of

しかし、ユーザー名「管理者」を2回作成できないようにしたいだけです。誰かがアイデアを持っていることを願っています!ありがとう

4

2 に答える 2

2

検証で条件を使用して、次のことを行うことができます。

class Model
  validates :username, uniqueness: true, if: :admin?

  def admin?
    username.downcase == 'admin'
  end
end

そうは言っても、私があなたにこれをやめさせなければ、彼らは私の開発者カードを奪うでしょう.

ユーザー名が管理者であるかどうかだけに基づいて管理者アカウントを作成すると、セキュリティが侵害される可能性があります。ActiveAdmin管理者アカウントを管理して、少なくともユーザー アカウントから分離するようなものを見てください。

于 2013-10-16T17:03:06.210 に答える
1

または validates_uniqueness_of :username, if: -> {username == 'admin'}、モデル内だけです。

于 2013-10-16T17:05:41.347 に答える