2014-10-29 48 views
0

我无法在模板中显示notice变量。代码如下:无法显示Flash通知

class UserController < ApplicationController 
    protect_from_forgery 
    skip_before_filter :require_login, :except=>[:list,:add,:delete,:update] 
    def add 
    end 

    def delete 
    end 

    def update 
    end 

    def list 
    end 

    def login 
    end 

    def logout 
    end 

    def isloggedin 
    login = params[:login].to_s 
    password = params[:password].to_s 
    logged_in = User.where(:user_name => login,:password => password).limit(1) 
    if not logged_in.blank? 
     session[:userinfo] = logged_in 
     redirect_to '/event/list' 
    else 

     flash[:notice] = 'Unable to login' 
     redirect_to '/user/login' 
    end 

    end 
end 

模板文件

<div><%= notice %></div> 
+1

将模板文件代码更改为:

<%= flash[:notice] %>
然后再试一次。 – Surya 2014-10-29 09:37:21

+0

没有运气。我看不到它 – Volatil3 2014-10-29 09:38:52

+0

当您尝试时,您是否确定条件通过'else'设置了'flash [:notice] ='无法登录'?另外,你可以这样做:'redirect_to'/ user/login',注意''无法登录',而不是写成两行。 – Surya 2014-10-29 09:40:46

回答

2

这种添加到您的模板文件:

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

因此,当你运行你的代码下一次密钥更换“的通知“和价值与”无法登录“

希望这种帮助! 谢谢

+0

如果问题解决然后PLZ接受这个答案 – 2014-11-06 08:57:12

0

这是因为我得到错误Can't verify CSRF token authenticity。我在表单中添加了以下输入字段,并且它开始显示消息:

<input name="authenticity_token" type="hidden" value="<%= form_authenticity_token %>" />