Разработать: контроллер регистрации не показывает флеш-сообщения
Я создал контроллер регистрации, который перезаписывает значение по умолчанию, разработанное Devise. Все работает хорошо, кроме флеш-сообщений - когда пользователь делает новую регистрацию, я хочу перенаправить его на мою домашнюю страницу и показать ему флеш-сообщение о том, что происходит, например:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
resource = build_resource(params[:user])
# add custom create logic here
if params[:referrer_key].nil?
puts 'A'
puts resource.inspect
if resource.save
puts 'B'
if resource.active_for_authentication?
#flash[:notice] = "Welcome!" # doesn't work neither
Notification.welcome(@user).deliver unless @user.invalid? # overriding original methods
sign_in(@user)
redirect_to root_url, :notice => "Welcome!"
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
render 'application/splash'
end
Пользователь зарегистрирован, залогинен, электронное письмо с уведомлением также отправлено, но флэш-сообщение не отображается.
Как я отображаю флеш-сообщения:
#flash-display
- flash.each do |type, msg|
%div{:class => "alert alert-#{type == :notice ? "success" : type} fadeout", "data-dismiss" => "alert"}
%button.close ×
= msg if msg.is_a?(String)
Флеш-сообщения обычно работают, но не для этого случая.
Что я могу упустить?
Спасибо
1 ответ
Вы должны использовать разные кавычки, иначе класс div испорчен:
%div{:class => "alert alert-#{type == :notice ? 'success' : type} fadeout", "data-dismiss" => "alert"}