2011-10-07 8 views
5

私はこのコードを持って動作しません:Railsのフラッシュ:通知が

def create 
    login(params[:email], params[:password]) 

    if current_user 
    flash[:notice] = "Welcome back #{current_user.email}" 
    return redirect_to_first_page 
    else 
    flash[:notice] = "Email or password is wrong. Try again !" 
    redirect_to root_url 
    end 
end 

ログインがフラッシュが設定されて成功し、最初のページへのリダイレクトが行われました。 この部分は機能しています。 2番目の部分は、フラッシュ通知メッセージを設定していません。その後、ページが表示されると、フラッシュからのメッセージは表示されません。何をしようとしているのですか?

return redirect_to root_url 

しかし何も表示されていません。 私のコントローラには、flash_noticeのようなヘルパーがありますが、それはリターンフラッシュ[:notice]です。 フラッシュは常にビューでは空ですが、コントローラではアクセスできるためです。 ビューでは、私はちょうど1行を持っている:私はレール3.1

+0

、 'redirect_toのroot_urlを行います通告=> "メールまたはパスワードが間違ってもう一度お試しください。!"'仕事? – Zabba

+0

いいえ同じ動作をします。 – Mihai

+0

'flash_notice'の代わりに' notice'のみを使用します。 – Hock

答えて

7

クリスDrappierが正しいかを使用してい

<%= flash_notice %> 

、フラッシュハッシュは、唯一の要求に対する現在のです。あなたは私が必要なときのparamsに問題のフラッシュを維持したい、個人的に

flash.keep[:notice]="This message will persist"

で「続ける」メソッドを呼び出すことができます。血みどろの詳細はここにある:

http://guides.rubyonrails.org/action_controller_overview.html#the-flash

関連する問題