通过js.erb文件呈现Flash消息

时间:2013-06-10 13:16:29

标签: javascript ruby-on-rails flash render

在我的Rails应用程序中,我想将控制器方法delete_optionquestions_controller)中的flash消息呈现给部分_edit.html.erb内部问题文件夹本身。我有一个js文件delete_option.js.erb,我可以使用下面的行成功地将编辑渲染为ID为edit_subquestion的div元素。

$("#edit_subquestion").html("<%= escape_javascript(render(:partial => "edit")) %>");

我在_edit.html.erb中放了一个div元素来渲染flash消息,如下所示。

<div id="flash_delete_option"></div>

我正在尝试将方法delete_option中的Flash消息呈现给上面的div元素,如下所示。

if((<%=flash[:success]%>).length > 0)
    $("#flash_delete_option").html("<%= escape_javascript(render('<%=flash[:success]%>')) %>");

我收到语法错误。请帮忙解决这个问题。一切都按照答案进行了尝试。没有得到它。

2 个答案:

答案 0 :(得分:2)

您可以使用ruby在edit.js.erb文件中执行条件。此外,由于您在escape_javascript中,因此不会在那里调用render。

<% if flash[:success] %>
    $("#flash_delete_option").html("<%= escape_javascript flash[:success]%>");
<% end %>

答案 1 :(得分:0)

Jesse Wolgamott:如果循环是问题。我修改了它。现在,它的工作。

<% unless flash[:success].blank? %>
    $("div .success").html("<%= escape_javascript (raw(flash[:success])) %>");
    $("div .success").show(200);
    $("div .success").click(function(){
        $("div .success").hide(200);
    });
<% end %>