Domanda

sto usando Devise in Rails 3 app, e ho configurato correttamente in modo che esso utilizza un nome utente come il suo metodo di autenticazione al posto di una e-mail. Il problema è che nel controller registrazioni di default per disposizione testamentaria, si chiama un metodo "update_with_password" sulle params passati in modo efficace, che permette agli utenti di cambiare il loro nome utente e la password. Questo comportamento ha un senso se si sta utilizzando e-mail come metodo di autenticazione, dal momento che è ragionevole aspettarsi le persone siano in grado di cambiare la loro e-mail. Tuttavia, con l'utilizzo di nomi utente, preferisco gli utenti non essere in grado di modificarli; Voglio solo che siano in grado di cambiare la loro password. Sarebbe questo modo migliore per farlo è quello di ignorare il RegistrationsController, e prevenire la massa-assegnazione di params in modo che solo la password può essere modificata?

Spero che questo sia chiaro. Grazie!

È stato utile?

Soluzione

Ok, ho risolto. Ho aggiunto attr_readonly alla variabile nome utente, in modo che non può essere modificato con l'assegnazione di massa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top