Rails 2.3.5:flash [:notice]在redirect_to调用后消失

时间:2010-05-20 07:09:03

标签: ruby-on-rails

这里我有两种控制器方法:

  def invite
    if request.post?
      begin 
        email = AccountMailer.create_invite(@user,url)
        AccountMailer.deliver(email)
        flash[:notice] = "Invitation email sent to #{@user.email}"
      rescue
        #mail delivery failed
        flash[:error] = "Failed to deliver invitation"
      end

      redirect_to :action => :show, :id => @user.id
    end
  end

  def show
    @title = "User #{@user.full_name}"
  end

问题是,当我发送邀请并被重定向到./show时,我看不到任何消息。如果我将redirect_to更改为render,则会显示该消息。不过,闪存是否打算在随后的请求中工作?

BTW,我正在使用Rails + Passenger设置,是否可以将重定向的请求发送到另一个应用程序实例?

2 个答案:

答案 0 :(得分:1)

救援区正在设置闪光[:错误],而不是闪光[:通知]。你的视图实际上是同时渲染吗?

答案 1 :(得分:1)

更好地搜索并发现了这个讨论:

http://www.mail-archive.com/activescaffold@googlegroups.com/msg04284.html

解决方案在那里:用

替换插件
script/plugin install git://github.com/ewildgoose/render_component.git -r rails-2.3 --force

虽然我不使用ActiveScaffold,但有些遗留代码依赖于render_component插件。将插件更新到分支版本有效,但我打算完全摆脱它。