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');
});

だから私が欲しいのは、@licencia データを _edit パーシャルで表示することです。最初にクリックしてレンダリングされたものを表示しますが、インデックスで別の @licencia オブジェクトをクリックすると、同じ @licencia オブジェクトが部分的にレンダリングされます。そのため、もう一度クリックして編集しても @licencia オブジェクトは更新されません。何が間違っているのですか?

4

1 に答える 1

1

引用符を使用すると、おそらくこの問題が発生します。あなたeditreplaceWith行の変数として扱われます。edit部分を使用してラップする引用符をエスケープするか、\'代わりに次を使用します。

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