  サインイン | 登録

  1. ホーム
  2. 
  3. プログラミング
  4. 
  5. Ruby on Rails
  6. 

Railsアプリケーションでのjquery-ujsからrails-ujsへの移行の仕方

2020/08/16 更新 2021/02/09
Makio
Ruby on Rail 5.1.0よりrails-ujsはRails本体に取り込まれました。

Unobstructed JavaScriptを提供するライブラリーとしてのjquery-ujsの役割はrails-ujsと重複です。また、Ruby on Rail 5.1.0からjqueryへの依存関係もなくなりました。


https://d6ysb2xoqnc13.cloudfront.net/images/9505/original/836afb


なので今後のメインテナンス、拡張性を考えてjquery-ujsからrails-ujsへ移行することにしました。

この記事では、移行の仕方を経験を踏まえて紹介します。




移行するまえに必要なこと


  • 様々なシナリオをチェックするインテグレーションテストがあること
  • ユニットテスト
  • 他のGemをアップデート


1.application.jsでjquery-ujs を rails-ujsに変更





2.jQueryそのものを使い続けるかどうか決める


123ishでは当分の間jQueryは使い続けることにしました。というのも、使っているGemでjQueryに依存しているものもあり、今の時点では継続することにしまいした。ただ将来的には、jQueryを使うことはなくなるかも知れません。



3.インテグレーションテストをアップデート


色々とテストそのものをアップデートする必要もあります。

  • trigger() とネイティブなJavascriptである click()に変更
  • 原因不明ながらCapybaraのclick_linkがBootstrapのモデルで使えなくなったので、不本意ながらexecute_scriptを使う。
  • セレクタ−としてidを使うことを徹底する。例えばclick_link("element-id")のようにidベースでコンポーネントを選んだほうが安定する



4.Sprocket からWebpackerへ移行している場合


require("@rails/ujs").start() を app/javascript/packs/application.js 先頭に入れる。これはCSRF セキュリティーエラーを起こさないために非常に重要です。





最後に


jquery-ujs から rails-ujsへの移行は比較的スムーズに行なえます。

とはいえ、この移行も影響が色々とあるので、インテグレーションテストがあることが大前提です。







#ruby, #rubyonrails, #ruby-on-rails, #javascripts, #webpacker, #rails-ujs, #jquery-ujs
スコアー: 1.32
 コメント
 0 いいね
0
  信用しますか?  
0

    


NFT 123ish 3次元ゴールドコインアートコレクション




人気のコメント
最初にコメントする

ボード


サインインしてコメントを投稿する


RailsアプリケーションでSporocketsからWebpackerへ移行する方法

Railsサイトで、friendly_id gemを使って日本語のフレンドリーURLを表示させる方法

Ruby on RailsでAMPページを作る方法

Ruby on Rails でDevise、ActiveModel::Otp、rqrcodeとグーグル認証システムによる二段階認証の実装の仕方

Ruby on Railsのコードに潜むN+1クエリ問題をBullet gem で発見して、Railサイトのレスポンスを最適化

【無料】FX自動売買の「シストレ系」おすすめツールを2つ紹介。MetaTrader4とTradingViewをユーザー目線で比較してみた【プログラミング可能】

大籠のキリシタン〜東北のキリシタン殉教の地「大籠」、千松兄弟とは

大籠のキリシタン殉教と千松兄弟に託されたメッセージ

ぎっくり腰には、早めの非ステロイド性抗炎症薬の服用が回復に良いのでしょうか?

東北の隠れキリシタンの里大籠を、地元自治会作製の「キリシタン殉教とたたら製鉄の里大籠散策マップ」により紹介

グランド・ナレーティブ 大いなる物語 アメリカは何処に行くのだろうか?

政治的独立と信教の自由

地元観光地図よる生月のキリシタン巡礼地

【Webライティング・コンテンツ作製のコンペティション】第一回123ish杯 123ishでの投稿記事のコンペティション 🥇1位4万円 🥈2位2万円 🥉3位1万円

Upworkでの支払い、返金に関するトラブルはどう対応できるか?

プログラマーは簡単な英語の読み書きで、Upworkのフリーランスとしてより稼げるようになる

生月に永遠に刻まれたキリシタン信仰の壮絶なドラマ

信徒発見と信教の自由

【Webライティング・コンテンツ作製のコンペティション】第2回123ish杯 投稿記事コンペティション

第一回123ish杯コンペティションの結果発表

有名ブログのUbersuggestによる月間オーガニックトラフィックでのランキングと分析

未経験からデータサイエンティストとして転職を成功させる方法。データサイエンスでの華やかな道と手堅く成功させる道を教えます

データサイエンティスト・データサイエンス職よりデータエンジニアでの転職の方が手堅い?未経験者がデータエンジニアになる方法を教えます。

アメリカでの日系老人介護施設費用

プライバシー設定を変更しました

記事は保存されました(投稿はされていません)

サインインして続行する

国: 日本 (jp)
  • United States (us)
  • 日本 (jp)
  • Indonesia (id)
  • India (in)
利用規約 | プライバシーポリシー | 私達に関して
よくある質問 | お問い合わせ
 
© 2025 123ish