Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Rails4.2にアップグレードする方法

一部のRailsアプリのアップグレードは、bundle update railsと同じくらい簡単です。 。

ただし、その他のいずれかがある場合はどうなりますか 種類のアプリ? Rails 4.0、さらには3.2に残っているものは、未来に向かって蹴ったり叫んだりする気がしなかったからですか?

迅速なアップグレードに直面している場合でも、面倒なアップグレードに直面している場合でも、これらの手順は、アプリを可能な限りスムーズにRails4.2に移行するのに役立ちます。その過程で、Rails4.2の新機能を最大限に活用する方法を学びます。

アップグレードガイドを読む

Railsアップグレードガイドを読んで、常にRailsのアップグレードを開始する必要があります。

アップグレードガイドでは、Railsバージョン間の主な変更点のほとんどについて説明します。 発生する最大の問題を修正するためにアプリを変更する方法を正確に説明します。 (たとえば、Rails 4.1でのこの変更は、それを監視することを知らなかった場合、何時間もの苦痛を引き起こしていました。)

しかしそれ以上に、アップグレードガイドでは理由について説明しています。 これらの変更を行う必要があります。そして、それは重要です。なぜなら、どの提案に従うべきか、どれを無視できるかを理解するのに役立つからです。

また、Rails 4.2の変更点をより深く理解したい場合は、リリースノートをお読みください。間もなく使用できるようになるすべてのクールな新しいRails4.2機能を紹介します。他に何もないとしても、それはあなたがそのアップグレードを成し遂げる動機となるでしょう。

段階的にアップグレード

新しいRailsバージョンに移行するときは、必ず最初に最新のポイントバージョンにアップグレードしてください。 また、マイナーバージョンをスキップしないでください。

したがって、4.1.6から4.2にアップグレードする場合は、4.1.6から4.1.9に、4.1.9から4.2にアップグレードします。 4.0.12から開始する場合は、4.0.12から4.0.13に移動し、次に4.0.13から4.1.9に移動し、次に4.1.9から4.2に移動します。かなり手間がかかるように思われるかもしれませんが、長期的には時間を節約できます。

なぜですか?

Railsリリースの最新のポイントバージョンには、最高の非推奨警告があります。

非推奨の警告がどれほど役立つかを過小評価しないでください。 段階的にアップグレードすると、何が壊れ、どのように防ぐかが正確にわかります。 ジャンプしすぎると、アプリが壊れてしまい、理由がわかりません。

最後に、ポイントバージョンのRailsアップグレード(4.0.9から4.0.13など)がテストに合格しなかった場合、通常は メジャーまたはマイナーアップグレード中に中断します。ただし、変更が少ない場合は、これらの問題のデバッグと修正がはるかに簡単になります。

だから、これが何をすべきかです:

  1. アプリが使用されているRailsバージョンの最新のポイントリリースにアップグレードします。
  2. bundle updateを妨げる他のgemをアップグレードします ing。
  3. テストを修正し、必要に応じてコミットします。
  4. 非推奨の警告を修正し、必要に応じてコミットします。
  5. Railsの次のマイナーバージョンまたはメジャーバージョンにアップグレードして、繰り返します。
テストに頼る

Railsをアップグレードすると、テストが何かが正しくないことを示す最初の兆候になります。 それらはあなたが最初に実行するものであり、あなたが最初に修正するものでなければなりません。テストがほぼ成功する前に、Railsアプリを起動させようとさえしないでください。

宝石をアップグレードする

テストが失敗し、それがあなたのせいではないように見える場合、それは通常、あなたの宝石の1つを更新する必要があることを意味します。

Railsのアップグレードは、宝石をアップグレードするのにほぼ最悪の時期です。 アプリの多くが変更されているため、Railsのアップグレードが何かを壊したのか、gemのアップグレードが何かを壊したのか、それとも何かを壊したのかを判断するのは困難です。

ただし、一部の宝石はRailsの内部に大きく依存しているため、これはあなたがしなければならないことです。したがって、sass内の何かが失敗した場合は、sass-railsgemをアップグレードしてください。そして、それが事態を悪化させないことを願っています。

ロットを取得 ノートの

Railsを特に大まかにアップグレードする場合は、実験する必要があります。おそらく、デバッグを行ったり、コードを微調整したり、テストを変更したりするでしょう。

これを行うと、 行った変更を忘れてください。 あなたが試したことのいくつかは、ほとんど、しかし完全ではありませんでした。次に見る予定のテストはどれですか。コードを変更する必要がある他の場所。自分のアプリをRails4.2にアップグレードしている同僚と共有するためのヒント。

だから、たくさんのメモを取ります。すべてを書き留めます。試したこと、変更したファイル。物事が失敗した理由と、それらが正しいかどうかについての仮説。どの宝石を更新する必要がありましたか。奇妙に思われる行動であり、後でもっと詳しく調べたいと思うでしょう。

変更を加えてロールバックし、それが実際に正しいことであることに気づき、何をしたかを覚えていないのです。 それを書き留めてください。

その他のリソース

コメントの中で、Miha RekarはRailsDiffを指摘しました。これは、異なるRailsバージョンで生成された新しいRailsアプリの違いを示しています。これは、不要になった構成パラメーターや、アプリに追加する必要のある新しいパラメーターについて学ぶための素晴らしい方法です。

また、Daniel Kehoeは、RVMおよびRVMジェムセットを使用してRubyとRailsを更新するための包括的なガイドを作成しました。

可能な限り最高のRailsアップグレード

一部のRailsのアップグレードはスムーズです。物事はうまくいきます。他の人は挑戦的な、数日または数週間のプロジェクトです。それはあなたのアプリ、あなたの依存関係、そしてRailsが変更した特定のものに依存します。 ただし、これらの手順に従うと、可能な限り最高のアップグレードエクスペリエンスが得られます。

Rails 4.2をもう使用していますか?アップグレードはどうでしたか?たくさんの宝石を更新する必要がありましたか、それとも最後に失敗したテストを追いかけていますか?

(簡単なメモ:2月11日にPracticing Railsをリリースする予定です。そのため、25%の早期アクセス割引を受けるには、あと数週間しかありません。)


  1. RailsでFlashメッセージを使用する方法

    フラッシュメッセージとは何ですか? フラッシュメッセージは、Railsアプリケーションのユーザーと情報を伝達する方法であり、ユーザーはアクションの結果として何が起こるかを知ることができます。 メッセージの例 : 「パスワードが正しく変更されました」(確認) 「ユーザーが見つかりません」(エラー) これらのフラッシュメッセージをコントローラーに設定してから、ビューにレンダリングします。その後、ユーザーはそれに応じて行動できます。 これがどのように機能するかを正確に学びましょう! フラッシュメッセージの使用方法 flashを使用して、これらの通知メッセージを操作できます ヘルパーメソ

  2. RailsアプリケーションでOmniAuth-Twitterを使用する方法

    このチュートリアルでは、アプリケーションのユーザーがTwitterアカウントを使用してログインできるようにする方法を学習します。これを行うには、OAuthなどのツールを使用すると簡単になります。 OmniAuthのTwitter戦略を含むOmniAuth-Twitterを利用します。 飛び込みましょう! はじめに Railsアプリケーションを生成することから始めます。ターミナルから、コマンドを実行して実行します。 rails new Tuts-Social -T Gemfileを開き、ブートストラップgemを追加します。 #Gemfile...gem bootstra