2015-06-27 77 views
0

Ruby on Rails中的flash[:notice] = "Message"存在问题。Ruby on rails flash notice error

我想创建登录错误错误消息。我的登录错误处理是:

flash[:notice] = "Invalid username/password combination." 
redirect_to(:action => 'login') 

因为我不知道,alert只是不显示。我有很多可能的解决方案,但他们都不适合我。我正在使用Safari/Google Chrome浏览器。

+2

你在哪里显示视图中的Flash消息?你的观点是什么样子? –

+0

否。在控制器中。此警报存在于if语句中,并且在用户未被授权时有效。 –

+1

我认为@ChrisPeters要求您基本向我们展示您如何在HTML中显示警报。如果他不是,比我:) –

回答

2

你的控制器代码看起来很好。我怀疑你的问题是而不是你在你的控制器中错误地调用flash方法,而是你没有写代码(正确)在你的视图中显示Flash。

flash只是持有一条消息,您的意见显示。您正在设置信息,但您可能无法正确显示。我不能说,因为你没有发布你的视图代码。

例如,如果这个动作提交user/login.html.erb形式,基于控制器代码的结果,你会希望有一个视图文件中下面的代码:

<% flash.each do |key, value| %> 
    <div class="alert"><%= value %></div> 
<% end %> 

此代码是一个更this article中描述的基本版本。

1

Flash只保存要在视图中显示的值。所以我们必须在视图中使用我们需要的适当的密钥。

因此,无论何时在此键中设置值,它都将显示在具有此代码的视图中。