今回、Ajaxを手作業で導入した。デフォルトでgamに導入されているturbolinksは、Ajaxと同じような機能のため、競合してしまい、うまく作動しない可能性がある。そこで、turbolinksを停止させたい。
1. GemfileからTurbolinksを削除
Gemfileの中に、以下のような記述があるので、コメントアウトにする。
gem 'turbolinks', '~> 5'
2. bundle install
ターミナルで、bundle install
をする。
3. application.html.haml から turbolinks の関連部分を削除する
< 省略 >
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
< 省略 >
上記の記述の後半部分を、下記のように削除する
< 省略 >
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
< 省略 >
4. application.js から turbolinks の関連部分を削除する
< 省略 >
//= require jquery
//= require jquery_ujs
//= require turbolinks ← この記述を削除
//= require_tree .
5. formを編集
form_with
を使って作成したformがある場合、全てのformにlocal: true
オプションをつける。これがないと、フォームがうまく動作しない。