首页 > 解决方案 > 如何在远程为真时呈现闪烁消息

问题描述

我有一个从我的视图调用的时间记录器控制器方法,称为_embed_menu.html.erb

<%= link_to l(:start_time_logger) + ' #' + @issue.id.to_s + ' ',
   {:controller => '/time_loggers', :action => 'start', :issue_id => @issue.id},
    :class => 'icon icon-start',
    :"data-replace" => '#time-logger-menu',
    :remote => true
%>

'start' 方法的一部分,我显示了一个错误:

      respond_to do |format|
        format.js{ flash[:error] = l(:start_time_expired_error)}
      end

现在到渲染 Flash 消息的部分。application_helper.rbrender_flash_messages功能。

  def render_flash_messages
    s = ''
    flash.each do |k,v|
      s << content_tag('div', v.html_safe, :class => "flash #{k}", :id => "flash_#{k}")
    end
    s.html_safe
  end

并且该函数在base.html.erb模板上调用。

<%= render_flash_messages %>

所以结果 - 我启动了一个启动方法,并且仅在我重新加载页面后才显示。我还尝试重定向,希望在此重定向之后会显示错误。

redirect_to controller: 'issues', format: 'js'

但没有结果。

也许我可以触发 <%= render_flash_messages %> 的重新渲染?

标签: ruby-on-railsrubyajax

解决方案



推荐阅读