0

Rails アプリで、ドロップダウン リストにサブカテゴリを表示しています。

  <%= f.fields_for :product_sub_categories do |product_sub_category| %>
     <%= product_sub_category.collection_select :sub_category_id, @sub_categories, :id, :sub_category, {:include_blank => 'Select a Sub Category'} %>
      <% if @product.product_sub_categories.size > 1%>
       <%= product_sub_category.link_to_remove "Remove", :class => "subcatlink" %>
      <%end%>
   <% end %>
   <%= f.link_to_add 'Add', :product_sub_categories, "data-association-insertion-node"=> ".product_sub_categories",  "data-association-insertion-position" => "append", "data-type" => "link", :class => "subcatlink"%>

ただし、デフォルトではドロップダウンリストは表示されません。ユーザーが「追加」リンクをクリックすると、ドロップダウン リストが表示されます。

ループ「f.fields_for :product_sub_categories do |product_sub_category|」に入っていないと思います

1 つのドロップダウン メニューを表示し、[追加] をクリックして他のメニューを追加するようにコードを記述する方法は?

誰でも助けることができますか?

4

1 に答える 1

0

子の初期 (保存されていない) インスタンスを親オブジェクトに追加して、子をレンダリングするときに追加リンクの前に単一の空白のフォームをレンダリングする必要があります。

親に子がいない場合にのみこれを行うか、常に空白のフォームを強制的に表示するようにするかを選択できます。例えば:

コントローラ:

def edit
  @parent = Parent.find(params[:id])
  @parent.sub_categories << SubCategory.new if @parent.sub_categories.blank? # only if no children already
  # or 
  @parent.sub_categories << SubCategory.new # always
end
于 2013-06-13T08:18:18.813 に答える