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

2 つのフォームが必要な理由がわかりません。ここは何かがおかしい。

可能であれば、ワークフローについてもう少し説明してください。

fields_for@order の他の関連付けられたインスタンスを編集しようとしている場合は、どちらかを使用する必要があります。

ダイナミック メニューの場合は、カテゴリに基づいて製品リストを更新する JavaScript イベント バインディングをカテゴリに設定します。例が必要な場合はお知らせください。

于 2013-02-14T14:54:13.010 に答える
0

あなたはこれを探していると思います: http://railscasts.com/episodes/88-dynamic-select-menus-revised 購読が必要ですが、購読したくない場合は前のエピソードを見てアイデアを得ることができます.

于 2013-02-20T22:03:07.327 に答える