通过本地到部分铁轨

时间:2013-07-08 14:01:11

标签: ruby-on-rails forms local edit partial

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

在我的licencias_controller

中调用编辑操作
<td><%= link_to '<i class="icon-pencil icon-black"></i>'.html_safe, edit_licencia_path(licencia), :remote => true %></td>

这是我在licensecias_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对象未更新。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您使用引号可能会导致此问题。您的edit将被视为replaceWith行中的变量。您想要使用edit转义包裹\'部分的引号,或者使用以下代码:

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