我是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中取出一行,一切正常,但我需要将该信息添加到我的模型中。
提前致谢!!