2017-02-22 29 views
1

私の連絡先ページにフラッシュメッセージを表示しようとしています。ここに私のコードですRails 4-フラッシュメッセージが表示されない

def contact_us 
    UserMailer.delay.contact_email(params) 
    flash[:notice] = 'Thanks for contacting us!!!!!' 
    redirect_to contact_path 
end 

def contact 
end 

私はフラッシュメッセージにアクセスしようとしましたが、空白の応答を得ました。

[1] pry(#<#<Class:0x0000000aef74f0>>)> flash 
=> #<ActionDispatch::Flash::FlashHash:0x0000000a633328 @discard=#<Set: {}>, @flashes={}, @now=nil> 

解決方法同じ問題が発生しました。 誰でもこの問題が発生する理由を知ることができますか? この問題を解決する方法を教えてください。

要求の詳細

Redirected to http://localhost:3000/contact 

Completed 302 Found in 213ms (ActiveRecord: 46.9ms) 
Started GET "/contact" for 127.0.0.1 at 2017-02-23 01:08:43 +0530 

EDIT は、私はまた、

  • Try1

    redirect_to contact_path, notice: 'Thanks for contacting....' 
    

    まだ同じ問題を取得してみました。

  • はまだ同じ問題を取得して2

flash[:notice] = 'Thanks for contacting....' flash.keep(:notice) redirect_to contact_path

を試してみてください。

flash[:notice] doesn't work with redirect_toからすべての解決策を試しても、同じエラーが発生することがあります。

私はruby 2.0.0p643とRails 4.0.13を使用しています。

+0

次の行を追加していますか?私はあなたが 'contact_us'を呼んでいると仮定して、getはフラッシュメッセージを表示するはずの' contact'にリダイレクトされますか?これをあなたの質問に入れておくと助かります... – phoet

+0

@phoet私はリクエストの詳細を追加しました。 – Natsu

+1

Try 'flash.now [:notice] =" ... "' –

答えて

2

。私はこの問題を修正するために、コンソール

Can't verify CSRF token authenticity 

にエラーを以下しまったサーバーのログをチェックすると、私はあなたが要求を実行するときにアプリケーションログが言うか何コントローラ

protect_from_forgery with: :null_session 
0

お試しください。

def contact_us 
    UserMailer.delay.contact_email(params) 
    redirect_to contact_path 
    flash[:notice] = 'Thanks for contacting us!!!!!' 
end 
+0

あなたの答えをありがとう。しかし、これはフラッシュメッセージを指定する正しい方法ではありません。 – Natsu

+0

@夏フラッシュメッセージを 'contact_email'アクションで動かしてみましょう –

0

アプリケーションのレイアウトにこれを追加します。私は、問題の同じ種類を持っ

<%= flash[:notice] %> 
関連する問題