2013-09-23 6 views
8

Dodałem: do potwierdzenia do mojej aplikacji Rails następnie. Problem polega na tym, że kiedy zapisać się po dodaniu: POTWIERDZALNE I nie dostać zawiadomienie wyświetlona po zapisać się do mnie z informacją, co się stało, na przykład:wymyślić: dodanie powiadomienia po rejestracji (z potwierdzeniem)

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

Dlaczego nie zauważa pojawić i jak można Dodaję to powiadomienie po dodaniu: do potwierdzenia?

Dzięki za pomoc

Odpowiedz

17

Wskazówka nie pojawi bo Devise jest przekierowanie do ścieżki korzeniowego, który jest prawdopodobnie chronione przez uwierzytelniania opracować. Kiedy naciśniesz root_path, nastąpi przekierowanie z powrotem na stronę sign_in (ponieważ devise nie może zalogować użytkownika, ponieważ nie jest jeszcze aktywowany). Możesz to sprawdzić, patrząc na dziennik rozwoju po wprowadzeniu informacji o użytkowniku i naciśnięciu przycisku "rejestracja" - zobaczysz w dzienniku jedno żądanie rejestracji użytkownika, a następnie prośbę o przejście do adresu głównego użytkownika (cokolwiek jest w twoim routes.rb), a następnie przekierowują nawigację do strony sign_in ze względu na uwierzytelnianie.

Podczas przekierowania wszystkie wiadomości flash są tracone (ponieważ wiadomości flash są ważne tylko dla następnego żądania), a po przekierowaniu z katalogu root_path do strony sign_in, robisz żądania. Musisz więc użyć flash.keep na pierwszym żądaniu, zanim zostanie przekierowany, lub zmienić ścieżkę after_sign_up, aby nie nastąpiło przekierowanie. Zalecam zmianę ścieżki after_sign_up, ponieważ jest to łatwiejsze i wygląda jak właściwa droga.

Aby to zrobić, trzeba użyć własnego kontrolera do rejestracji i dodać after_sign_up_path metodę, która zwraca adres URL przekierowania:

# app/controllers/registrations_controller.rb 
class RegistrationsController < Devise::RegistrationsController 

    private 

    def after_inactive_sign_up_path_for(resource) 
    new_user_session_path 
    end 
end 

#config/routes.rb 
devise_for :users, :controllers => { :registrations => "registrations" } 

Ja również polecam czytania podobne pytanie do Ciebie: Rails 3 and Devise: Redirecting to page following signup (confirmable)

+0

wielki, szybki , pro odpowiedz .. dziękuję! – Aljaz

+0

Dzięki. Zapraszamy. –

+0

Dzięki za odpowiedź. –