0

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)

通常、フラッシュ メッセージは機能しますが、この場合は機能しません。

私が見逃している可能性があるものは何ですか?

ありがとうございました

4

1 に答える 1

0

別の引用符を使用する必要があります。そうしないと、div クラスが台無しになります。

%div{:class => "alert alert-#{type == :notice ? 'success' : type} fadeout", "data-dismiss" => "alert"}
于 2014-01-28T13:55:25.613 に答える