1

我不知道发生了什么。我只想通过 ajax 渲染一个编辑表单,将一个局部传递给一个局部。我的代码如下

在我的 licencias_controller 中调用编辑操作

<td><%= link_to '<i class="icon-pencil icon-black"></i>'.html_safe, edit_licencia_path(licencia), :remote => true %></td>

这是我在 licencias_controller 中的代码

      def edit
    @licencia = Licencia.find(params[:id])
    respond_to do |format|
      format.js {}
    end
  end

这是我在edit.js.erb中的代码

    $(document).ready(function(){

    $('#modContLicencia').replaceWith('<%= escape_javascript(render(:partial => 'edit', :locals => {:licencia => @licencia})) %>');
    $('#modLicencia').modal('show');
});

所以我想要的是在 _edit 部分中显示@licencia 数据。第一次我点击查看它的渲染正常,但是如果我点击索引中的另一个@licencia 对象,部分渲染相同的@licencia 对象。所以当我再次点击编辑它时@licencia 对象没有被更新。我做错了什么?

4

1 回答 1

1

您对引号的使用可能会导致您遇到此问题。您edit将被视为该行中的一个变量replaceWith。您想要转义包含您的edit部分使用的引号\'或使用以下内容:

$('#modContLicencia').replaceWith("<%= escape_javascript(render(:partial => 'edit', :locals => {:licencia => @licencia})) %>");
于 2013-07-08T14:15:13.053 回答