2017-02-22 38 views
1

我尝试在我的联络页上显示Flash讯息后。这里是我的代码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。

+0

什么应用程序日志中说,在下面的错误?我假设你正在调用'contact_us',它被重定向到'contact',它应该显示flash消息?这将有助于把这个问题... – phoet

+0

@phoet我已经添加了我的请求详细信息。 – Natsu

+1

尝试'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

感谢您的回答。但这不是指定Flash消息的正确方法。 – Natsu

+0

@Natsu尝试在'contact_email'动作中移动你的Flash消息 –

0

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

<%= flash[:notice] %>