はじめに
rails、payjpを使用した、クレジットカードの登録機能実装の際に起きた問題について記録します。
バージョン情報
- ruby 2.6.5
- rails 6.0.3.3
起こった問題
クレジットカード新規登録の際に一度リロードしないと登録できず、
リロードした後に登録すると正常にカード情報が登録される。
原因
turbolinksが影響を及ぼしていた。
本来ページ遷移するところを無理やりajaxに変えてDOMの部分変更によるもの。
処理やレスポンスの向上になるが、jsの処理が動かなくなったり悪さをします。
解決方法
- application.js
- application.html.haml
のturbolinksの記述を削除
#javascripts/application.js
//= require jquery
//= require rails-ujs
//= require_tree .
#javascripts/application.js
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
コメントアウトの行を削除
⬇️
-# = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
= javascript_pack_tag 'application'
最後に
今回はturbolinksについての記述を削除することで解決できました。
まだまだturbolinksについての知識が浅いことからこのよう問題に至ったのかなと思います。
メリット、デメリットについて情報収集を行い、turbolinksを生かした記述ができるように
取り組んでいこうと思います。
しょうま