動的選択メニューを含む子フィールドを持つRailsネストフォームがあります:-category(フィルターメニュー)--products
単一のフィールドセットを機能させることはできますが、.html()を取得して選択データをロードすることができなかったため、製品メニューをハックしました(DOM対応のメインフォームで「バックアップ」collection_selectを使用)。動的フィールド。テンプレートコードとして、改訂されたRailscast#88を使用しています。
本当の問題は、最初の選択メニューの組み合わせだけが機能することです。追加のフィールドセットでカテゴリメニューを選択すると、すべてのメニューが失敗します。(this)メソッドを追加しようとしましたが、機能させることができました。
どんな洞察も大歓迎です!
Relevent js.coffee:
products = $('.products-backup').html()
$('form').on 'change', '.category', (event) ->
category = $('.category :selected').text()
escaped_category = category.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(products).filter("optgroup[label='#{escaped_category}']").html()
if options
$('.products').html(options)
else
$('.products').empty()
Relevent rails html.erbpartial-注:各選択メニューに:class名を割り当てました:
<fieldset>
<div class="field">
<%= f.collection_select :category_id, Category.all, :id, :name, { prompt: 'Select' },
{ :class => "category" } %>
</div>
<div class="field">
<%= f.grouped_collection_select :product_id, Category.order(:name), :products,
:name, :id, :name, { prompt: 'Select' }, { :class => "products" } %>
</div>
#...more fields
</fieldset>