2014-02-05 91 views
1

的问题是:有没有办法通过Ajax动态呈现表单助手?

我需要呈现通过AJAX复选框的集合,所以我有这样的:

$("#imovel_tipo_imovel_id").on "change", -> 
    $.get("/admin/caracteristicas", { tipo_imovel_id: $(this).val() }) 

当我改变一个选择值,它会打我的控制器和渲染回来集合的复选框。问题是我需要渲染的部分必须放在一个表单中并发送回不同的控制器。

= simple_nested_form_for @imovel do |f| 
    .caracteristicas 
    = render 'my_partial', f: f 

部分

= f.simple_fields_for :caracteristicas_imovel do |c| 
    = c.collection_check_boxes :caracteristica_id_in, @caracteristicas, :id, :descricao 

的js.erb responde:

$(".caracteristicas").html("<%= render 'my_partial' %>") 

控制器:

def index 
    respond_to do |format| 
    format.js { @caracteristicas = Caracteristica.where(tipo_imovel_id: params[:tipo_imovel_id]) } 
    end 
end 

你明白吗?所以当我试图通过ajax呈现我的部分时,它抱怨它没有f变量。 我正在做对吗?有没有更好的办法?

回答

0

我只是在这里使用实际的HTML。尝试使用完整的代码来渲染此页面,检查它,然后将渲染的html复制/粘贴到您的部分。我确信有一种方法可以用助手来破解它,但这样看起来更简单。

相关问题