Rails 5 の機能と変更点の詳細

Rails 5 は、アトランタで開催された RailsConf 2015 で、Ruby on Rails Framework の作成者である David Heinemeier Hansson (DHH) によって発表されました。 Ruby 5.0.0 ベータ版は 2015 年 12 月 18 日にリリースされました。Rails 4 とは別に、Web 開発ワークフローを瞬時に改善できるアクション ケーブルや改良されたターボリンクなどの新機能が 5 バージョンに実装されています。 Rails 5 の機能は次のとおりです。

Ruby バージョンのサポート:

Rails 5 では、 のみ Ruby 2.2.1 以降で動作します。 Ruby 2 以降を使用する理由は次の機能です。 シンボルガベージコレクター Ruby On Rails アプリケーションでは、通常、あらゆる場所にシンボルを渡しますが、これを行うと、ガベージ コレクションされないシンボルによってメモリが消費され、DoS 攻撃の可能性が生じます。 Ruby 2.2.0 では、シンボルを収集できるようにガベージ コレクターに変更が導入されました。 モジュール #prepend 先頭に追加されたクラスの前にモジュールを挿入できるようにします。 キーワード引数 Ruby 2.0 では、キーワード引数に対する最上級のサポートが導入されました。
def foo(bar: 'default') put bar end foo # => 'default' foo(bar: 'baz') # => 'baz' インクリメンタル GC
これは、Rails アプリケーションによるメモリ消費量を削減するのに役立ちます。非推奨のコードの削除とクリーンアップ アクションメーラー #配信と#配信!メソッドが削除された場合は、新しいメソッドdelivery_now またはdelivery_later を使用してください。
電子メール ビューの *_path ヘルパーは削除され、*_url を使用します。
アクティブなレコード 保護された属性 (attr_accessible) は現在完全にサポートされていません。 activerecord-deprecated_finders gem のサポートが終了しました。 アクションパックアサーション assert_template および assigns() アサーションは非推奨となり、独自の gem Rails-controller-testing に移動されました。
ActiveRecord::Base#has_secure_token
Rails 5 では、モデルにランダムなトークンを含めるために has_secure_token が導入されました。 アクションビュー アクション ビューでは、content_tag_for や div_for などのヘルパー メソッドがコアから削除され、別の gem レコード タグ ヘルパーに移動されました。 ターボリンク 新しいターボリンク 3 Rails の大きな問題の 1 つが解決されます。サーバーからページ全体をリロードするために、実際に動作が遅くなる Web アプリはほとんどありません。この新しい Turbolinks 3 は本文のコンテンツのみをリロードし、ページ全体をリロードしません。部分的に置き換える要素を指定できます。部分置換機能は、Rails 5 での最も重要な変更の 1 つです。クライアント側から Turbolinks に、どのコンテンツを変更/置換する必要があり、何が不要かを伝えることができるようになります。 DOM での置換戦略を決定するために、turbolinks は HTML5 カスタム属性 data-turbolinks-permanent および data-turbolinks-temporary を検索します。 turbolinks.visit または Turbolinks.replace を使用して DOM を更新し、クライアント側で置換をトリガーできます。 Visit はサーバーに GET を発行して、DOM を置き換えるために使用する必要がある HTML を取得し、replace は操作に使用する必要がある HTML を期待します。 redirect_to と render を使用して同じ機能をサーバー側からトリガーできます。redirect_to と render はどちらもオプションとして変更、保持、およびフラッシュを受け取ることができます。ただし、redirect_to は true または false でターボリンクを受け取り、リダイレクトを強制することもできます。 アクションケーブル アクションケーブル Websocket 経由で Rails を拡張し、リアルタイム メッセージ パッシング機能を追加するために使用されるフレームワークです。これはおそらく、Rails 5 の最も優れた点の 1 つです。WebSocket を Rails アプリケーションの残りの部分とスムーズに統合します。アクション ケーブルを使用すると、アプリにリアルタイム機能を非常に簡単に追加できます。この機能を追加した理由は、そのような機能のニーズが高まっていたためです。 WebSocket を利用したリアルタイム メッセージングで Rails の機能を拡張するために導入されました。 Action Cable には、オープン接続であること、他の HTTP リクエストに比べて非常に軽量であることなど、多くの利点があります。もう 1 つの利点は、一度接続が確立されると、その接続は開いたままになることです。この開いた回線を通じて、サーバーとクライアントの両方が新しい接続を再確立することなく通信できます。サーバーとクライアントは WebSocket の全二重接続を使用して同時に通信できます。 Action Cable の欠点の 1 つは、リクエストをキャッシュできないことです。 WebSocket のもう 1 つの欠点は、ブラウザ市場の 70% だけが WebSocket 接続を許可しているため、ブラウザ間でのサポートが難しいことです。 Rails 5 の追加の新機能
  • ActiveRecord::Relation の #or メソッド
  • #belongs_to はデフォルトで必須です
  • アクティブレコード属性API
  • has_secure_token が ActiveRecord に着陸しました
  • MySQL アクティブ レコード アダプターが Json サポートを取得
  • コントローラーの外側でテンプレートをレンダリングする
  • より優れた Minitest テストランナー
Rails API これにより、Rails アプリのみの API を生成でき、アプリに必要のないミドルウェアをすべて削除できます。新しい Rails API を使用して新しい Rails アプリケーションを作成すると、HTML ではなく JSON を使用することを前提とした構成が得られます。 Rails API アプリケーションを作成するコマンド:
Rails 新しい my-app-api –api
どこからでもレンダリング ここ数日、私たちはコントローラーの外側でビューをレンダリングするために render_anywhere のような gem を使用してきました。 Rails 5 では、どこからでもビューをレンダリングできます。レンダリング オプションに加えて、インスタント変数をテンプレートに渡すために使用できるオプションもあります。 Rake コマンドでアプリを再起動します Rail 5 では、次のコマンドを使用してすべてのアプリを再起動できます。 レーキの再起動。そして移行の場合: Rails データベース:移行 このリストは決定的なものではないことに注意してください。Rails 5 のすべての変更点について詳しく知りたい場合は、Rails.Org のリリース発表を確認することをお勧めします。こちらもお読みください: レールカーマ 最新のツールと技術を使用してアプリケーションを構築します。チェックアウト 私たちのポートフォリオ ソフトウェア業界の形の変化に私たちがどのように貢献しているかを理解するため。 今すぐご連絡ください。

最新のアップデートを購読する

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

jaJapanese