Validação de senha do Ruby on Rails
Portanto, tenho requisitos interessantes de validação de senha:
Quando um usuário se inscreve, quero que ele digite a senha, confirme e esteja entre6..40
(OBTEVE ESTE TRABALHO 100%)
Quando um usuário atualiza seu perfil, as mesmas regras de validação se aplicam (OBTEVE ESTA FUNCIONANDO 100%)
Quando um administrador adiciona um usuário, ele precisa digitar a senha apenas uma vez e deve ser validada (NÃO É TRABALHO)
Quando um administrador edita um usuário e o campo da senha está em branco, ele não deve atualizar a senha; se digitar algo, deverá ser validada. (TRABALHO PARCIAL)
validates :password, :presence => true,
:confirmation => true,
:length => {:within => 6..40},
:unless => :force_submit
Os únicos casos que não posso cobrir são quando um administrador adiciona um usuário, ele não é validado e, quando um administrador edita um usuário (e digita uma senha), ele não é validado.
a:force_submit
é passado do formulário de administrador, para que a senha não seja validada. (Portanto, o caso de uma senha vazia de atualização funciona)
Alguma idéia / magia?