gem 'nested_form_fields'のremove_nested_fields_linkをRails 5で使うときの注意点
gem 'nested_form_fields'とは
nested_form_fields はネストされたフォームの作成などを助けるgem
問題:remove_nested_fields_linkが正常に動作しない
ヘルパーメソッドの一つであるremove_nested_fields_link
はネストされたフォームの動的削除のメソッドで以下のように使う(はず)。
new.html.erb
<%= f.nested_fields_for :transitpoints, wrapper_tag: :div do |ft| %>
...省略...
<%= ft.remove_nested_fields_link 'Delete', class: 'btn btn-danger', role: 'button'%>
<% end %>
そして生成されたHTMLのページでDelete
ボタンを押すと、追加されたフォームが削除されるはずが、
Uncaught TypeError: Cannot read property 'allowAction' of undefined
が発生してしまう。
解決策
//= require jquery_ujsを追加する
app/assets/javascript/application.js
...省略...
//= require jquery_ujs
なぜか?や本当に?とかは答えられません。
むしろ知っている人がいたら教えてほしいです。
ちなみに私が調べた範囲ではRails5になるにあたり、今までjquery_ujs
だったものが、rails_ujs
になったとのことでした。
(が、rails_ujs
は自分の環境ではrequire
しているのにエラーになるのはjquery_ujs
内のものがrails_ujs
に移動したわけではないからと予想しています)