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)
wielki, szybki , pro odpowiedz .. dziękuję! – Aljaz
Dzięki. Zapraszamy. –
Dzięki za odpowiedź. –