Разработать: контроллер регистрации не показывает флеш-сообщения

Я создал контроллер регистрации, который перезаписывает значение по умолчанию, разработанное 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 &times;
            = msg if msg.is_a?(String)

Флеш-сообщения обычно работают, но не для этого случая.

Что я могу упустить?

Спасибо

1 ответ

Вы должны использовать разные кавычки, иначе класс div испорчен:

%div{:class => "alert alert-#{type == :notice ? 'success' : type} fadeout", "data-dismiss" => "alert"}
Другие вопросы по тегам