次のようにネストされたフォーム構造があります。
class List < ActiveRecord::Base
has_many :restaurants, :dependent => :destroy
end
class Restaurant < ActiveRecord::Base
belongs_to :list
end
リストを作成/編集するのと同じフォームで、レストランのアイテムを特定のリストに追加できます。リスト フォーム内でレストランの項目をネストするには、次のようにします。
<%= f.fields_for :restaurants do |builder| %>
<%= render 'restaurant_fields', f: builder %>
<% end %>
<%= link_to_add_fields "+ add to stack", f, :restaurants %>
restaurant フィールドのパーシャルには、アイテムを削除するためのリンクがあります。
<%= link_to "remove stack item", '#', class: "remove_fields" %>
これらのアクションの jquery (coffeescript) は次のとおりです。
jQuery ->
$('form').on 'click', '.remove_fields', (event) ->
$(this).prev('input[type=hidden]').val('1')
$(this).closest('fieldset').hide()
event.preventDefault()
$('form').on 'click', '.add_fields', (event) ->
time = new Date().getTime()
regexp = new RegExp($(this).data('id'), 'g')
$(this).before($(this).data('fields').replace(regexp, time))
event.preventDefault()
スタック項目の削除をクリックすると、スタック項目 (レストラン) がビューから非表示になるだけでなく (上記参照)、実際のレコードも同時に削除されるように、ajax 要求を送信したいと考えています。これについてどのようにアドバイスしますか?