0

私の User.rb モデルには、次の行があります。

validates_confirmation_of :password, :message => "パスワードは一致する必要があります。"

次に、ユーザーがサインアップすると、パスワードが一致し、すべてがうまくいきます...ユーザーオブジェクトにさらに情報を追加してから、再度保存するまで。しかし、@user.save を実行すると、パスワードが一致しないというエラーが返されます。サインアップ コントローラー メソッドには、次の行があります。

  @user = User.new(params[:user])
  if request.post?
    if !@user.save
      @errors = @user.errors
    else

      # crucial user details:
      @user.salt = [Array.new(6){rand(256).chr}.join].pack("m").chomp 
      @user.password = encrypted_password(@user.password, @user.salt) #hash this
      if !@user.save
        puts "error for some reason in signup"
        puts @user.errors.inspect
      end

検査すると、@users.errors.inspect は #["パスワードが一致する必要があります。"]} を出力します。そうでなければ、最初の .save 呼び出しに合格することはありませんでした。ここで私が間違っていることについて何かアドバイスはありますか?

ご協力いただきありがとうございます。

4

1 に答える 1

2

これで修正されました:

validates_confirmation_of :password, :on => :create, :message => "パスワードは一致する必要があります。"

于 2010-01-16T07:45:49.230 に答える