2013-07-08 67 views
0

我不知道发生了什么。我只想通过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'); 
}); 

所以我想要显示_licit部分中的@licencia数据。第一次点击查看它的呈现正常,但是如果我在索引中单击另一个@licencia对象,则局部呈现相同的@licencia对象。因此,当我单击另一次编辑它时,@licencia对象不会更新。什么即时做错了?

+1

用$( '#modContLicencia')尝试HTML(“<%= escape_javascript(渲染(:部分=>'编辑',:locals => {:licencia => @licencia}))%>“); –

+0

虽然它没有回答你的问题'$('#modContLicencia')'必须是唯一的 – Salil

+0

谢谢你的回答,那就是问题! –

回答

0

您使用的引号可能会导致您的这个问题。您的edit将被视为replaceWith行中的变量。你想要么逃避报价使用\'包木窗您edit部分或使用替代如下:

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

谢谢你,那就是问题所在! –

+0

@MaximilianoPoggio,不客气! – vee