我试图在另一个部分渲染,像这样:
<% cobran = @detalleco.cobran %>
$("#cobran_<%= @detalleco.IdCobranza %>").fadeOut(500, function(){
$(this).remove();
$(".child").remove();
$("#container_cobranza").html("<%=escape_javascript(render(:partial => 'cobranza/cobran', cobranza: cobran))%>");
});
但是我收到了这个错误:
ActionView :: Template :: Error(未定义的局部变量或方法cobran' for #<#<Class:0xb47692ec>:0x83cb1500>
Did you mean? cobran_url):
1: <tr id="cobran_<%= cobran.id %>">
2: <td><%=cobran.id%>
3:
4:
app/views/cobranza/_cobran.html.erb:1:in
_ app_views_cobranza__cobran_html_erb__36360536__1042659538'
app / views / detallecob / create.js.erb:12:in`_app_views_detallecob_create_js_erb__76211164__1041949938'
无法识别变量“cobran”,因为在视图中以这种方式进行渲染:
<tbody id="container_cobranza">
<%= render @cobranza %>
</tbody>
并且在部分中将“cobranza”的单数放在这样的“cobran”中:
<tr id="cobran_<%= cobran.id %>">
<td><%=cobran.id%>
<td><%=cobran.FechaReg%></td>
<td><%=cobran.FechaVence%></td>
<td><%=cobran.TipoDoc%></td>
</tr>
我该如何解决这个问题?感谢
答案 0 :(得分:1)
你不能在javascript中使用那个erb变量。通过数据属性将其传递给javascript。添加到您的某个元素:data-cobran="<%= @detalleco.cobran %>"
在元素上添加ID,然后通过ID var cobran = $("#nameOfId").data('cobran')
之后你可以使用它。