1

我有一个订单表格,用户必须选择一个类别然后关联产品。因为我希望它是动态的,所以我写了这个:

_form.html.erb

<%= form_for(@order) do |f| %>

    <%= f.collection_select :category_id, @categories_list, :id, :name, :prompt => "Selectionner"  %>

    <%= render :partial => 'products' %>

    <%= f.submit 'Enregistrer', :class=>'button add'%>

<% end %>

_products.html.erb:

<%= form_for(Order.new, :remote => true) do |f| %>
  <% if !@products.blank? %>
    <%= f.label 'Produit :' %><br />
    <%= f.select :product_id, @products.collect{ |s| [s.name,s.id]}, :prompt => "Selectionner" %>
  <% else %>
    <%= f.label 'Produit :' %><br />
    <%= f.select :product_id, '' %>
  <% end %>
<% end %>

在控制器中:

def update_product_select
  @products = Product.where(:category_id=>params[:id]).order(:name) unless params[:id].blank?
  render :partial => "products", :layout => false, :locals => { :products => @products }
end

对于动态部分,它可以工作。但是当我点击提交按钮时,没有发送产品ID!

你能告诉我如何将动态菜单和表单提交结合起来吗?

谢谢。

4

2 回答 2

0

我想你正在寻找这个:http ://railscasts.com/episodes/88-dynamic-select-menus-revised 它需要订阅,但如果你不想订阅,你也可以看上一集来了解一下.

于 2013-02-20T22:03:07.327 回答
0

我不明白你为什么需要两种形式。这里不对劲。

如果可能的话,多解释一下工作流程。

fields_for如果您尝试编辑 @order 的其他关联实例,我认为您应该使用。

对于动态菜单,请在类别上绑定一个 javascript 事件,以根据类别更新产品列表。如果你需要一个例子,请告诉我。

于 2013-02-14T14:54:13.010 回答