RoR的闪光功能不起作用

时间:2012-08-24 14:22:00

标签: ruby-on-rails ruby-on-rails-3

在用户点击登录按钮进行登录时,在登录表单中,登录表单通过会话资源调用创建操作。

以下是行动:

 def create
   user = User.find_by_email(params[:session][:email].downcase)
   if user && user.authenticate(params[:session][:password])
     #Sign the user in and redirect to user's main page
   else
    flash[:error] = "Invalid email/password combination"
    render 'new'
  end
 end      

虽然闪光[:错误]无效。

我尝试在静态页面控制器中放置一个'flash [:notice]',以便在主页重定向到时闪烁通知,尽管这也不起作用。

我的测试套装给了我这个错误

Failure/Error: it { should have_selector('div.alert.alert-error', text: 'Invalid') }
   expected css "div.alert.alert-error" with text "Invalid" to return something

这是我的CSS的问题吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

你可能不得不使用flash.now [:error],因为你正在渲染视图。

flash.now[:error] = "Invalid email/password combination"

http://apidock.com/rails/ActionDispatch/Flash/FlashHash/now

答案 1 :(得分:2)

您是否添加了代码以在布局或视图模板中显示Flash?

看起来您可能正在使用Bootstrap,因此您可以在布局文件(views/layouts/application.html.erb或其他布局)中执行与此类似的操作:

<% flash.each do |key, message| %>
  <div id="flash-<%= key %>" class="alert alert-<%= key %> fade in">
    <button class="close" data-dismiss="alert">&times;</button>
    <%= message %>
  </div>
<% end %>