CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
Ruby on Rails最大級の公式カンファレンスであるRailsConfを4月末に控え、Railsのメジャーバージョンアップの発表もそろそろではないかと噂されています。現時点で明らかにされているバージョンアップの変更のうち、特筆すべきものをまとめてみました。
Rails 5以降は、これまでrakeコマンドで呼び出していたコマンドを、railsコマンドで呼び出せるようになります。たとえば、従来の「rake db:migrate」には「rails db:migrate」を使えるようになります。
実はrakeコマンドとrailsコマンドの使い分けに論理的な理由がなかったため、この変更によりコマンドが覚えやすくなりました。
参考 https://github.com/rails/rails/issues/18878
Rails アプリケーションを再起動するためには、tmp/restart.txt というファイルを設置し、「touch tmp/restart.txt」というコマンドを打つ必要がありましたが、Rails 5以降では、「rake restart」コマンドでアプリの再起動ができるようになりました。
参考 https://github.com/rails/rails/pull/19169
Rails 5.0でassigns()とassert_templateが非推奨になりました。使用できなくなったわけではありませんが、後続のバージョンでは削除される可能性があるでしょう。
これらの機能が非推奨になった理由は、インスタンス変数をテストしたり、どのテンプレートがコントローラーで呼ばれているかをテストすることは、あまりいい考え方とはいえないからです。それらはコントローラー内部の事情であり、コントローラーのテストではそのような内部変数について気にするべきではありません。コントローラーが気にすべきことは、どんなクッキーがセットされているかや、どのHTTPコードが起こり、データベースにどんな変化が起きたのか、などです。
Ruby on Railsの開発者であるDHHは、コントローラーのテストをすべて削除し、代わりに統合テストで賄う可能性についても話しています。
参考 https://github.com/rails/rails/pull/19058
RailsはRuby 2.2.1以上のみサポートするようになり、この新しいバージョンのrubyによるスピードアップを見込んでいます。バージョン2.2.0はセグメンテーション違反のバグがあったため、スキップされました。
参考 https://github.com/rails/rails/pull/19257
Rails 5はパフォーマンスの面でもさらに改善され、新しい機能も追加されました。今後追って紹介したいと思います。
参考 https://intercityup.com/blog/upcoming-changes-in-rails-5-0.html
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes