IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第6回 Rails 5.0の変更点(仮) (野田貴子) 2015年10月

Ruby on Rails最大級の公式カンファレンスであるRailsConfを4月末に控え、Railsのメジャーバージョンアップの発表もそろそろではないかと噂されています。現時点で明らかにされているバージョンアップの変更のうち、特筆すべきものをまとめてみました。

rakeコマンドが不要に

Rails 5以降は、これまでrakeコマンドで呼び出していたコマンドを、railsコマンドで呼び出せるようになります。たとえば、従来の「rake db:migrate」には「rails db:migrate」を使えるようになります。

実はrakeコマンドとrailsコマンドの使い分けに論理的な理由がなかったため、この変更によりコマンドが覚えやすくなりました。

参考 https://github.com/rails/rails/issues/18878

rakeコマンドでのアプリ再起動

Rails アプリケーションを再起動するためには、tmp/restart.txt というファイルを設置し、「touch tmp/restart.txt」というコマンドを打つ必要がありましたが、Rails 5以降では、「rake restart」コマンドでアプリの再起動ができるようになりました。

参考 https://github.com/rails/rails/pull/19169

コントローラーのテストでassigns()とassert_templateが非推奨に

Rails 5.0でassigns()とassert_templateが非推奨になりました。使用できなくなったわけではありませんが、後続のバージョンでは削除される可能性があるでしょう。

これらの機能が非推奨になった理由は、インスタンス変数をテストしたり、どのテンプレートがコントローラーで呼ばれているかをテストすることは、あまりいい考え方とはいえないからです。それらはコントローラー内部の事情であり、コントローラーのテストではそのような内部変数について気にするべきではありません。コントローラーが気にすべきことは、どんなクッキーがセットされているかや、どのHTTPコードが起こり、データベースにどんな変化が起きたのか、などです。

Ruby on Railsの開発者であるDHHは、コントローラーのテストをすべて削除し、代わりに統合テストで賄う可能性についても話しています。

参考 https://github.com/rails/rails/pull/19058

Ruby 2.2.1のみをサポート

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