在警报消息中显示会话变量

时间:2012-11-16 16:50:35

标签: ruby-on-rails view controller haml session-variables

我目前在我的控制器中有这个:

 if c.save 
    session[:success] = "Career updated successfully."
    redirect_to "/career"

这在我看来:

- if session[:success]
  .alert.alert-success.fade.in
    %button.close{"data-dismiss" => "alert", :type => "button"} ×
    %strong Well Done!
    = session[:success]

然而无论如何都没有出现......

2 个答案:

答案 0 :(得分:2)

Wooo Wooo Wooo从未使用session用于此类工作,而是使用flash代替documentation):

# in the controller:
if c.save 
  flash[:success] = "Career updated successfully."
  redirect_to "/career"

# in the view:
- if flash[:success]
  .alert.alert-success.fade.in
    %button.close{"data-dismiss" => "alert", :type => "button"} ×
    %strong Well Done!
    = flash[:success]

来自文档的引用:

  

你在闪光灯中放置的任何东西都会暴露在下一个动作中然后被清除。

答案 1 :(得分:0)

您可以将其分配给控制器中的实例变量,然后在视图中显示该变量。您还可能希望会话[:success]成为布尔值。所以它可能是这样的:

在控制器中:

 if c.save 
  session[:success] = true
  @status = "Career updated successfully."      
  redirect_to "/career"

在视图中:

- if session[:success]
  .alert.alert-success.fade.in
  %button.close{"data-dismiss" => "alert", :type => "button"} ×
  %strong Well Done!
  = @status

但一般来说,这样的事情通常都是用flash消息完成的。