0

名前の一意性を次のように検証する単純なUserクラスがあります。

class User < ActiveRecord::Base

  validates :name, :uniqueness => true,

これは、新しいユーザーが作成されたときにうまく機能します。しかし、ログインフォームを確認すると、ユーザーが自分の名前を入力すると、システムはそれがすでに取得されていると言っているので、意味がありません。

そこで、別のメソッドを実装しましたが、そこでvalid_login?その不確実性チェックを有効にすることはできません。

def valid_login?
  validates :name, :uniqueness => false # doesn't work
end

これは私のコントローラーのコードです:

def login
    return unless request.post?

    @user = User.new(params[:user])
    if @user.valid_login?
      # Redirect to user's page
    end
end

私は非常にシンプルな独自の認証システムを使用しています。ユーザーのIDとパスワードのハッシュをCookieに保存します。

必要のないときに特定の検証をオフにするにはどうすればよいですか?

4

1 に答える 1

0

この問題は:if /:unlessパラメーターで解決しました。

于 2010-10-23T10:09:31.837 に答える