6

Ho installato Devise on Rails 4.2.0 e tutto sembra funzionare, ho usato il guida presso:Rails Devise: "Devi effettuare l'accesso o registrarti prima di continuare" invece di "Riceverai un'email con le istruzioni .."

http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/

miei moduli testamentaria sono:

devise :database_authenticatable, :registerable, :confirmable, 
     :recoverable, :rememberable, :trackable, :validatable, :omniauthable 

l'unico problema è che se provo a creare un nuovo account accedendo alla pagina di registrazione, quindi dopo aver inserito la mia email e nuova password (due volte), sono riportato alla pagina di accesso e vedere th e il messaggio 'non autenticato':

You need to sign in or sign up before continuing 

Quando invece dovrei ottenere il messaggio 'send_instructions':

You will receive an email with instructions for how to confirm your email address in a few minutes. 

Ho un before_filter nel mio ApplicationController:

before_filter :authenticate_user!, :except => [:show] 

anche se confesso che Non capisco perché questo non mi dà errori di autenticazione nella pagina di accesso o nella pagina 'password dimenticata'. Ad ogni modo ho provato ad aggiungere: new_user_session a: except, ma non è stato d'aiuto.

Come posso ottenere la notifica flash corretta per quando qualcuno si sta registrando?

non ho sovrascritto qualsiasi del codice concepire (diverso da quello che suggerisce il doc sourcey), il mio DeviseHelper Basta un metodo per stampare i messaggi flash:

def devise_error_messages! 
    return '' if resource.errors.empty? 

    messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join 
    messages.html_safe 
end 

EDIT:

la mia ricerca iniziale di SO non ha aiutato (troppe domande simili che non erano rilevanti) ma ora ho trovato questo:

devise sign_in after sign_out error

Quindi credo che il problema è che Devise sta cercando di portarmi sul mio root_path dopo che ho fatto l'azione sign_up. Non so perché lo farebbe per una configurazione confermabile, sembra che dovrebbe riportarmi alla pagina sign_in.

Ho cercato di ignorare questo sovrascrivendo 'after_sign_up_path_for' in un controllore Cutom registrazioni utilizzando:

Override devise registrations controller

Forse ho fatto male, ma che non sembrano aiutare.

Quindi ora la domanda è: come posso ottenere Devise per tornare alla pagina sign_in dopo che qualcuno ha eseguito un sign_up e perché non è questa l'azione predefinita per una configurazione confermabile?

+0

hai trovato la soluzione? –

+0

Purtroppo dal momento che ci è voluto tanto tempo, ho finito per mettere questo progetto sullo scaffale e non ho ancora avuto la possibilità di tornare al contesto. –

risposta

1

Hai menzionato l'override di after_sign_up_path_for in un controller di registrazioni personalizzato, ma seguendo la direzione in this link, potresti provare a posizionarlo nel tuo application_controller.rb.