0

パスワードの検証にはこのルールがあります-ユーザーがアカウントを作成してから設定でパスワードを検証したい-パスワードを変更しない場合は、変更したくありません(それぞれのユーザーが変更する場合のみ) = 彼はパスワード確認で新しいパスワードを設定しました)。

ここに私が持っているものがあります:

  validates :password, 
            :length => {:within => 6..40}, 
            :on => :create   

しかし、ルール:on => :createが機能しません。設定で空白のパスワードを送信すると、パスワードが正しくないというエラーが引き続き表示されます。

私は何を間違っていますか?

4

1 に答える 1

0

これが行うべきように見えます:

validates :password, length: { within: (6..40) }, if: -> user { not user.persisted? or user.password.present? }

ユーザーがまだ永続化されていない場合(createアクション)、またはパスワードが後で提供された場合(設定を通じて)にのみパスワードを検証します

于 2013-01-27T11:20:07.710 に答える