Rails 4- Flash消息未显示

时间:2017-02-22 18:29:49

标签: ruby-on-rails ruby-on-rails-4

我尝试在联系页面上显示Flash消息后。这是我的代码

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

def contact
end

我尝试访问Flash消息但得到空白回复。

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

还试过this解决方案但是遇到同样的问题。 任何人都可以知道我为什么会遇到这个问题? 我该如何解决这个问题。

请求详细信息

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

修改 我也试过

  • 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。

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。当我检查服务器日志时,我在控制台上出现以下错误

Can't verify CSRF token authenticity

为了解决这个问题,我添加了以下控制器行

protect_from_forgery with: :null_session

答案 1 :(得分:0)

尝试以下。

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

答案 2 :(得分:0)

将此添加到您的应用程序布局:

<%= flash[:notice] %>