Rails 5,使用ajax将变量传递给partial

时间:2016-09-11 11:16:41

标签: ruby-on-rails ajax

我是rails的新手,我试图通过AJAX将变量传递给部分。

首先我创建一个新的pedido然后我进行Ajax调用以从数据库中获取一些信息。有了这个信息,我需要选择一个字段并将其保存到新的信息中。

这是新的pedido页面的html:

#new.html.erb
<%= form_for @pedido do |f| %>
    <div id="Cliente">
        <%= render 'cliente', f: f %>
    </div>
<% end %>

现在在pedido控制器中我有:

#pedido_controller.rb
def new
   @pedido = Pedido.new
end

def get_cliente
 @cliente = User.find(params[:cliente_id])
 respond_to do |format|
  format.js { render 'get_cliente', layout: false}
 end
end

我进行Ajax调用:

#pedidos.coffee
jQuery ->
    $(document).ready ->
        $("#pedido_id").on "change", ->
            $.ajax
                url: "/pedidos/get_cliente"
                type: "GET"
                data:
                    cliente_id: $('#pedido_id option:selected').val()

我的JS档案:

#get_cliente.js.erb
$('#Cliente').html( "<%=j render('cliente', :locals => {:cliente =>     @cliente, :f => f }) %>" );
$('#Cliente').slideDown(350);

最后我的部分有这条线:

#cliente.html.erb
<%= f.collection_select(:id, @cliente.user_sucursals.all, :id, :nombre,  {include_blank: true}, {:class => "form-control"}) %>

所以我想将_clientes中我的f.collection_select中的id保存到我的新@pedido变量中,但我不知道如何将_pedido变量分配给_cliente中的本地f。< / p>

如果我在cliente.html.erb中取出一行,一切正常,但我需要将该信息添加到我的模型中。

提前致谢!!

0 个答案:

没有答案