2013-07-08 8 views
7

Ho un'applicazione di binari 4 che utilizza devise. Sto cercando di consentire agli utenti di avere un nome utente associato a loro.Aggiunta del nome utente per progettare binari 4

Ho aggiunto una colonna nome utente (stringa) alla tabella Utenti, e aveva la mia applicazione di controllo simile a questa:

class ApplicationController < ActionController::Base 

    before_filter :configure_permitted_parameters, if: :devise_controller? 
    protect_from_forgery with: :exception 
    protected 
    def configure_permitted_parameters 
     devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) } 
    end 

end 

e ho anche aggiunto un campo per il nome utente sugli utenti/pagina sign_up.

Ma ottengo questo errore:

undefined local variable or method `devise_parameter_sanitizer' for #<Devise::RegistrationsController:0x00000101378a28> 

Quindi, in pratica la mia domanda è: perché è questo errore appare, o in quale altro modo posso ottenere un utente per ottenere un nome utente?

Grazie per tutto l'aiuto!

risposta

16

È consentito solo il nome utente consentito nel metodo di accesso, ma sto assumendo che quando si crea un nuovo utente, è nel metodo di registrazione. Quindi provare questo:

def configure_permitted_parameters 
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } 
end 

Fonte: https://github.com/plataformatec/devise#strong-parameters

+0

grazie che hanno funzionato. – infinity

+1

Lo sto facendo nel mio application_controller e sono in grado di registrarmi e accedere (subito dopo la registrazione). Ma non riesco ad accedere dalla pagina di accesso. Ho il login/chiave di autenticazione di installazione per il nome utente, e ho campi username e password nel database. Qualche indizio? Ecco una versione più dettagliata del mio problema - http://stackoverflow.com/questions/18804971/devise-rails-4-not-able-to-login –

Problemi correlati