我不知道发生了什么事。我只是想通过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对象未更新。我做错了什么?
答案 0 :(得分:1)
您使用引号可能会导致此问题。您的edit
将被视为replaceWith
行中的变量。您想要使用edit
转义包裹\'
部分的引号,或者使用以下代码:
$('#modContLicencia').replaceWith("<%= escape_javascript(render(:partial => 'edit', :locals => {:licencia => @licencia})) %>");