Pergunta

Estou usando o Devise em um aplicativo Rails 3 e o configurei com sucesso para que ele use um nome de usuário como método de autenticação em vez de um email. O problema é que, no controlador de registro padrão para o Devise, ele chama um método "update_with_password" nos parâmetros passados, que efetivamente permite que os usuários alterem seu nome de usuário e senha. Esse comportamento faz sentido se você estiver usando o email como um método de autenticação, pois é razoável esperar que as pessoas possam alterar seu email. No entanto, com o uso de nomes de usuário, prefiro que os usuários não possam alterá -los; Eu só quero que eles possam alterar sua senha. Essa melhor maneira de fazer isso seria substituir o controlador de registros e impedir a assinatura em massa dos parâmetros para que apenas a senha possa ser alterada?

Espero que isso esteja claro. Obrigado!

Foi útil?

Solução

Ok, eu resolvi. Eu adicionei att_readonly à variável de nome de usuário, para que ela não possa ser alterada com a atribuição de massa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top