在没有重定向的 Rails 控制器中发出警报

Posted

技术标签:

【中文标题】在没有重定向的 Rails 控制器中发出警报【英文标题】:Raise an alert in rails controller without redirect 【发布时间】:2011-11-23 23:52:22 【问题描述】:

如果消息已保存/未保存,我只想闪烁通知/错误,没有任何重定向,我怎么能没有重定向:

  respond_to do |format|
  if @message.save
    format.html  redirect_to request.referer, :notice => 'Message sent!'  #dont want redirect
  else
    # error message here
  end

【问题讨论】:

【参考方案1】:

在 Rails 5 中,您可以:

format.html  redirect_to request.referer, alert: 'Message sent!' 

【讨论】:

这为我提出了too few arguments【参考方案2】:

使用flash.now:

if @message.save
  flash.now[:notice] = 'Message sent!'
else
  flash.now[:alert] = 'Error while sending message!'
end

respond_to do |format|
  format.html  # blahblah render 
end

【讨论】:

@RahulDess 可能为时已晚,但对其他人来说:是的,它确实在 Rails 4 中工作。它甚至在 Rails 指南中提到:guides.rubyonrails.org/…

以上是关于在没有重定向的 Rails 控制器中发出警报的主要内容,如果未能解决你的问题,请参考以下文章

如何在Splunk中发出警报?

Rails respond_to 重定向不起作用

Rails/Rspec - 在控制器中测试重定向

可以在 Rails 中创建此重定向路线吗?

弹出警报过早显示?

localhost在rails上重定向了太多次ruby