Rakeコマンドをrailsコマンドに統一
$ rails routes
$ rails db:migrate
クエリ関連のメソッドの追加
or, left_outer_joins, (left_joins)
が使えるようになりました。
詳細はGithubのrails Added #or to ActiveRecord::Relation より
Action Cable の導入
WebSocketとRailsのその他の部分をシームレスに統合し、Rails アプリケーションの効率の良さとスケーラビリティを損なわずに、通常のRailsアプリケーションと同じようにリアルタイム機能をRubyで記述できるようになりました。
参考サイト GO RAILS
控えめな「JavaScript」から純粋な「JavaScript」へ (フロント周りの変更点)
デフォルトでのJQuery依存が廃止されます。
Ruby on Rails 5.1リリースノート
従来のRailsでは、data-remoteやdata-confirmについてはjQueryに依存し、その他の機能をUnobtrusive JavaScript(UJS: 控えめなJavaScript)に依存する形で機能を提供していました。Rails 5.1からはこれらの依存が解消され、UJSはvanilla JavaScript(=純粋なJavaScript)で書き直されました。このコードはAction View内部でrails-ujsとしてリリースされています。
デフォルトではjQueryに依存しなくなりましたが、必要に応じて従来どおりjQueryに依存することもできます。
Yarnのサポート
Rails 5.1より、JavaScriptの依存管理をnpmからYarnに変更できるようになりました。
Web packのサポート
新しいWebpacker gemの導入によって、JavaScriptのアセット用bundlerとも言うべきWebpackを簡単にRailsアプリに統合できるようになりました。Railsアプリを新規に生成するときに--webpackフラグを付けることで、Webpack統合が有効になります。
統合されたWebpackはアセットパイプラインとの完全互換が保たれます。画像・フォント・音声などのアセットも従来どおりアセットパイプラインで利用できます。また、一部のJavaScriptコードをアセットパイプラインで管理し、その他のJavaScriptコードをWebpack経由で処理する、といったこともできます。これらはすべて、デフォルトで有効なYarnで管理されます。
Turbolinks 5
Turobolinksはページ間の遷移をXHR化しbodyの書き換えのみにすることで高速化を図る機能ですが、Turbolinks 5で大きく実装が書き換えられました。APIの変更には注意する必要があります。
$ ~ => true
$ ~ : 'reload'
参考ページ Turbolinks 5とTurbolinks Classic(2.x)の比較
API
APIのみのアプリケーションを簡単に作成できるようになりました。
$ rails new app --api
その他気になった点
belongs_to の参照先がnilの場合、バリデーションエラーになります。
form_tag, form_for が form_with に統合されます。
<%= form_with scope: :post, url: post-path do |form| %>
<% end %>
参考サイト TechRacho
Action Cable の導入に伴い、開発環境のサーバがWEBrickからPumaに変更
詳しい変更についてはGithubのrailsリポジトリにあるComparing changesを参照してください。