1

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

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

我在里面放了一个 div 元素_edit.html.erb来呈现如下所示的 flash 消息。

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

我正在尝试将 flash 消息从方法呈现delete_option到上述div元素,如下所示。

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

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

4

2 回答 2

2

您可以使用 ruby​​ 在您的 edit.js.erb 文件中执行条件。此外,由于您在 escape_javascript 中,因此您无需在其中调用 render。

<% if flash[:success] %>
    $("#flash_delete_option").html("<%= escape_javascript flash[:success]%>");
<% end %>
于 2013-06-10T13:23:18.360 回答
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 %>
于 2013-06-10T17:56:15.523 回答