Ruby on Rails 7.0.1の提供機能をいち早く解説!
thumb_rubyonrails701_01
Ruby on Rails 7.0.1の提供機能をいち早く解説!
アンドエンジニア編集部
2022.01.27
この記事でわかること
新機能はメジャーリリースとなるRails 7.0ですでに実装済みです
Rails 7.0.1は最新Rubyのサポートと不具合修正に限定されます
最新Rubyは新しいJITコンパイラが搭載されており、互換性・品質を高めており有効です

Ruby on Rails 7.0.1のリリース

img_rubyonrails701_01

2021年12月16日にリリースされたRuby on Rails 7.0ですが、2022年1月6日7.0.1がリリースされました。ベース言語であるRubyは例年12月25日に最新版をリリースしています。そのため、最新Rubyをサポートするために立て続けに7.0.1のリリースとなりました。詳細は後ほど説明します。

そもそもRuby on Railsとは

Ruby on Railsは、Rubyで書かれたウェブアプリケーションフレームワークです。コード量を最小にとどめ、多くの機能を実現することを主眼においたフルスタックのフレームワークとなります。 【参考】:Ruby on Rails

RubyとRuby on Railsの関係ですが、Rubyがフレームワークのベースとなるコード実行を行うプログラム環境となります。RailsはRubyの上でアプリケーションフレームワークのRubyコードを実行します。ベースとなるRubyの必須バージョンはRubyのバージョンアップリリースやサポート状況に影響されます。現在の必須バージョンは2.7.0以降です。

Ruby on Railsとは?特徴やできることを徹底解説!

Railsのインストール

Railsをインストールする前に、Ruby2.7.0以降をインストールしておきます。”ruby –version”でバージョンを確認しておきます。WindowsではRubyインストーラが利用可能です。 【参考】:RubyInstaller

RailsはRubyの他に、SQLite3・Node.js・Yarnを利用します。SQLite3はOSに同梱されていることがあります。また、WindowsではRails installerに含まれます。念のため”sqlite3 –version”でバージョン確認をしておきます。 【参考】:SQLite

Node.jsはインストーラが公式ダウンロードサイトに公開されています。インストール後”node --version”でバージョン確認が可能です。8.16.0より大きいバージョン番号である必要があります。 【参考】:node.js

YarnはmacOSではHomebrew、WindowsはインストーラやChocolatey、LinuxはRPMやリポジトリを用います。対象OSのインストール方法は、公式サイトに記載されていますのでご確認ください。 【参考】:yarn

上記ソフトウェアがインストール完了したら、Railsをインストールします。

Railsは、Ruby言語のパッケージ管理システムとなるRubyGemsを通じて配布されています。RubyGems自体の初期インストールはRubyを用いて行い、以降はgemコマンドで”gem update –system”を実行しアップグレードします。Railsのインストールは”gem install rails”を実行します。 【参考】:RubyGems rails 【参考】:Download RubyGems

“rails –version”で"Rails 7.0.1"等、想定のバージョン番号を確認したらインストール完了です。古いバージョンをアップデートする場合は、”rails app:update”コマンドを使いモジュールを少しずつ更新していきます。ここではアプリケーション動作を確認するためにテスト合格状況をチェックしていきます。

一連のアップデート作業の流れは「Upgrading Ruby on Rails」に掲載されていますのでご一読ください。 【参考】:Upgrading Ruby on Rails

Ruby on Railsのインストール・バージョン指定方法を解説

Ruby on Railsでできること

Ruby on RailsではMVCモデルを採用しており、効率を高めています。具体的には以下の役割で構成しています。

M(Model、モデル)  データベースとの通信とデータ操作(登録・参照・更新・削除)、ビジネスロジックを担当します。 ・V(View、ビュー)  Rubyのコードを埋め込み、ブラウザに表示されるUI出力(コンテンツ)を担当します。 ・C(Controller、コントローラ)  UIからの入力を担当し、モデルとのやり取りやデータ操作の結果をビューに受け渡します。

作業の進め方ですが、“rails new xxx”(xxxはタスク名)でジェネレータがタスクに必要なファイル・設定を自動生成してくれます。以降は最低限の修正と追加でウェブアプリケーションが完成します。

利用するには”bin/rails server”を起動し、”http://localhost:3000”に接続するとRailsのデフォルトページが表示されます。server起動によりPumaウェブサーバが起動され、ページが表示されます。ルーティング・コントローラ・ビューを使い、コンテンツのカスタマイズを行います。

これらの機能はウェブアプリケーションで必要なものですので、結果的にRailsでは、ショッピングサイト・Blog・SNS・ウェブコンテンツ・業務システム等に用いられています

Rubyのフレームワーク、「Ruby on Rails」ができることとは?

Rails 7.0のリリース機能

img_rubyonrails701_02

Rails 7.0はRails 7.0.0.alpha1以降の機能を正式リリースしたものです。以下に主要な機能実装をまとめておきます。 【参考】:rails Releases v7.0.0 【参考】:Rails 7.0: Fulfilling a vision

フロントエンド開発環境のブラッシュアップ Node.jsを用いない構成がデフォルトの設定となります。WebpackとWebpackerとの組み合わせではなく、Javascript bunderを用います。具体的にはjsbundling-railsで”--javascript edbuild”を指定します。Node.js依存のCSS bundlerでは、”cssbundling-rails”で”--css bootstrap”を用います。

Active Recordによる暗号化 セキュリティサービスのHEYから抽出した暗号化属性を、Active Recordに追加し職場環境での暗号化に対応します。個人情報の流出を防止するとともに、Railsコンソールでデータ保護機能をコード定義しアクセスを制御します。

Marginalia-Style Taggingを用いたQueryのトレース SQLコメント taggingを用いたQueryLogをActive Recordに取込みます。

非同期Queryの読み込み load_asyncで非同期にQueryをロードします。そのため複数のQueryが実行された場合、ロード・実行時間の短縮が図られます。

Zeitwerkへの置換 オートローダーがZeitwerkコードローダに置き換わります。具体的には”config.autoloader=”が削除され、zeitwerkローダーのみとなります。古い環境では”config.autoloader = :zeitwerk”と指定するとRails7と同等の設定も可能です。

Rubyの必須バージョンは2.7.0以降ですが、Ruby3.0以上が推奨バージョンです。

Rails 7.0.1の更新内容

Ruby on Rails 7.0リリース後まもなくの2021年12月25日、Ruby 3.1が正式リリースされました。そのため、Rails 7.0.1はRuby 3.1をフルサポートするために更新リリースしたものです。Ruby 3.1では新しいJITコンパイラがサポートされ、品質も強化されています。既存バージョンの受け皿としても期待されているリリースです。

Ruby 3.1のサポート以外は、不具合修正に留まります。具体的には、プラグインGemfileの修正・プライグインダミーアプリのasset pipelineエラー修正・ルート失効の修正・Sidekiqジョブが特定のネームスペースで再ロードできない問題を修正・プラグインジェネレータのテスト工程での修正等が行われました。

なおセキュリティ問題に伴いwebpackerのリタイヤと、jsbundling-rails with webpackへの移行の記事がTwitterやGitHubに掲載されています。Rails 7の設計思想に基づき実装の見直しが進んでいます。 【参考】:RETIREMENT: Webpacker 【参考】:Switch from Webpacker 5 to jsbundling-rails with webpack

今後Rails 7.1に開発に伴いオートローダーのパス管理が$LOAD_PATHに追加しない旨も記載されています。Zeitwerkが唯一のオートローダーですので不要と判断されました。Railsのblogに今年に入ってから1月21日までの記事がまとめてあります。ご興味あればご確認ください。 【参考】:Rails 7.0.1, Webpacker retirement and more

Ruby on Railsの進化に追従しましょう

img_rubyonrails701_03

Ruby on Railsはタスク作成時に、必要なアプリケーションコンポーネントの大半が自動的に生成されます。そのためコードの保全性が高く効率的です。更新頻度が高く短サイクルでアプリケーション開発を行う業務には最適です。HuluやGitHub・クックパッド・airbnb等の大手採用実績も多いです。

アプリケーションフレームワークを決める際には、採用実績豊富なRailsを候補に検討してみることをおすすめします。

Rubyの資格取得方法やメリットを、エンジニア初心者向けに解説!
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT