Ruby on Railsチュートリアル
⚡ スマートサマリー
Ruby on Rails チュートリアルでは、Airbnb、GitHub、Shopify を支える Ruby で書かれたオープンソースの Web フレームワークを紹介します。このチュートリアルでは、インストールについて説明します。 WindowsMac、Linux、Railsジェネレーター、ルーティング、ビュー、ActiveRecord、バリデーション、デバッグ。

Rubyとは何ですか?
ルビー Rubyは、高水準のインタプリタ型オブジェクト指向プログラミング言語です。大規模なコミュニティに支えられた、動的なオープンソース言語です。Rubyは、シンプルさと生産性を重視して設計されました。人間が第一に考え、コンピュータは第二に考えるソフトウェアコードの記述を推奨しています。Rubyは、1995年に日本の松本幸弘氏によって開発されました。
レイルズとは何ですか?
レール(Rail) Railsは、Webアプリケーション構築のためのRubyで書かれた開発フレームワークです。Basecampアプリケーションの基盤として開発され、2004年にオープンソースソフトウェアとしてリリースされました。Railsは多くの標準機能を内蔵しており、MVPプロトタイプ開発に適しています。ping そして、迅速な製品開発。
Railsは、DHHとして知られるDavid Heinemeier Hanssonによって開発されました。Webアプリケーション構築のための最も影響力があり人気のあるツールの1つであり、Airbnb、GitHub、Shopifyなどの大手サイトでも使用されています。
なぜレールなのか?
ツールチェーンをインストールする前に、Railsが依然として船舶開発で人気のある選択肢である理由を理解しておくと役立ちます。ping ウェブアプリケーションを迅速に。
- RailsはRuby gemとしてパッケージ化されており、これを使って様々なアプリケーションを構築できます。
- これにより、通常のWebアプリケーション、eコマースサイト、コンテンツ管理システムなどを構築できます。
- Railsは、モデル・ビュー・コントローラー(MVC)パターンを使用してデータベース駆動型のWebアプリケーションを作成するために必要なすべてを含む、フルスタックフレームワークです。
- すべてのレイヤーはシームレスに連携するように設計されているため、Railsプロジェクトは通常、他のフレームワークの同等のプロジェクトよりも少ないコード行数で済みます。
Rubyをダウンロードしてインストールする方法 Windows
インストール手順はオペレーティングシステムによって異なります。次のセクションでは、Ruby のインストールについて説明します。 Windows、Mac、および Linux.
ステップ1) Rubyinstallerをダウンロードしてください。
Ruby をコンピュータにインストールする最も簡単な方法 Windows コンピュータは、Ruby Installer を介して動作します。 https://rubyinstaller.org/.
ダウンロード後、インストーラーを実行してください。
ステップ2) ダウンロードしたインストーラーをクリックしてください。
Double-ダウンロードしたインストーラーファイルをクリックします。例: rubyinstaller-2.4.1-2-x64.exe.
ステップ3) ライセンスに同意してください。
「ライセンスに同意します」のラジオボタンを選択し、「次へ」ボタンをクリックしてください。以下の画面が表示されます。
ステップ4) 最初の2つのチェックボックスにチェックを入れてください。
Ruby スクリプトの実行を容易にするには、最初の 2 つのチェックボックスをオンにします。
「インストール」ボタンをクリックしてインストールを開始してください。インストールが完了すると、以下の画面が表示されます。
ステップ5) 完了をクリックします。
MSYS2をインストールするオプションのチェックは外さないでください。「完了」をクリックしてインストールを完了します。以下に示すように、コマンドプロンプトウィンドウが開きます。
ステップ6) MSYS2をインストールしてください。
この手順では、パッケージマネージャーを備えたビルドプラットフォームである MSYS2 をインストールします。 Windows.
すべてのコンポーネントをインストールするには Enter キーを押してください。スムーズな Ruby on Rails 開発環境には、すべてのコンポーネントが必要です。 Windows.
レールの取り付け
前のセクションでRubyをインストールしたはずです。次に、Railsをインストールします。Railsはパッケージを使用してインストールできます。 Railsインストーラーしかし、パッケージには必要な依存関係の最新バージョンがすべて含まれているとは限らない。
既に最新のRubyと基本となるRubyGemsおよび拡張機能がインストールされている場合は、コマンドプロンプトで以下のコマンドを実行するだけで、システムにRailsをインストールできます。 gem install rails.
インストールする必要もあります Node.js まだインストールしていない場合は、Railsが依存するライブラリの中には Javaスクリプトランタイムが正しく動作するようにします。Nodeは以下から入手できます。 https://nodejs.org.
より一般的で好ましいアプローチは Windows 使用することです Windows Linux 用サブシステム。コマンドラインツール、ユーティリティ、一般的なアプリケーションを直接内部に組み込んだ GNU/Linux 環境を提供します。 Windows.
Mac に Ruby をインストールする
お使いのMacには既にRubyがプリインストールされています。ただし、プリインストールされているバージョンは古い場合が多いので、より新しいバージョンをインストールすることをお勧めします。
これを行う最も簡単な方法は、次のようなパッケージマネージャーを使用することです。 自作まず、ターミナルで以下のコマンドを実行してHomebrewをインストールする必要があるかもしれません。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
警告が表示され、パスワードの入力を求められます。Macのパスワードを入力し(入力中は文字が表示されません)、入力が終わったらEnterキーを押してください。その後、Homebrewコマンドを実行してMacにRubyをインストールします。
brew install ruby
次に、以下のコマンドを実行してください。
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
これにより、システムにプリインストールされているRubyではなく、新しくインストールしたRubyがシステムのデフォルトのRubyとして設定されます。
インストールが成功したことを確認するには、ターミナルで次のコマンドを実行してください。
ruby --version
これは、インストールされているRubyのバージョン番号を表示します。出力は次のようになります。
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Ruby をインストールする Ubuntu (Linux)
Rubyをインストールする最も簡単な方法は Ubuntu apt パッケージ マネージャーを介してインストールします。ターミナルで以下のコマンドを実行して、最新の Ruby をインストールします。 Ubuntu リポジトリ。
- sudo apt update – これはデフォルトを更新します Ubuntu リポジトリ。
- sudo apt install ruby-full – これにより、最新のRubyがダウンロードされ、インストールされます。
インストールを確認するには、以下を実行してください。 ruby –versionこれは、インストールされているRubyのバージョンを表示します。
レールの取り付け Ubuntu (Linux)
以下の手順に従って、LinuxマシンにRailsをインストールしてください。
ステップ1) 次のコマンドを実行して、gemマネージャーを更新します。 gem update –system ターミナルまたはコマンドプロンプトで実行します。
ステップ2) ラン gem レールのインストール 最新バージョンの Rails をコンピュータにインストールします。
ステップ3) Railsアプリケーションのgem依存関係を簡単に管理するために、bundler gemをインストールします。 gem インストール バンドラー.
Railsの2つの原則
Railsは基本的なソフトウェア設計原則に従っており、あなたにもそれらの原則を用いることを推奨しています。
最も一般的なのは次の XNUMX つです。
- 自分を繰り返さないでください(DRY) ―これにより、簡潔で一貫性があり、保守しやすいコードが実現します。
- 設定よりも規約 Railsは、一般的な用途に適した適切なデフォルト設定があらかじめ用意されています。これにより、アプリケーション開発が迅速に行え、保守すべきコード量も少なくなります。
Rails – プロジェクト ファイル構造
システムにRailsがインストールされたら、Railsアプリケーションを作成します。次のセクションでは、ToDoリストアプリケーションを構築することで、Ruby on Railsのサンプルを順を追って説明します。アプリケーションを作成するには、ターミナルで次のコマンドを実行してください。
rails new todo_app
このコマンドは、という名前のディレクトリを作成します。 todo_app 以下に示すように、Rails Webアプリケーションの基本的なフォルダ構造を持つ現在のディレクトリ内。
プロジェクト用に生成された主なディレクトリは以下のとおりです。
アプリ – UI/レイアウト(ビューとヘルパー)、コントローラー(コントローラーファイル)、およびモデル(ビジネス/アプリケーションロジック)用のサブディレクトリをグループ化します。
アプリ/コントローラー – Railsがクライアントからのリクエストを処理するために使用するコントローラーファイルを保存します。
アプリ/アセット – アプリケーションのフロントエンドに必要な静的ファイルを種類別にグループ化して格納します。 Javaスクリプト ファイル、画像、スタイルシート。
アプリ/ヘルパー – アプリケーションモデル、ビュー、コントローラーのロジックを簡潔かつコンパクトに保ち、整理された状態に保つためのヘルパー関数が含まれています。
アプリ/モデル – アプリケーションのデータベースをモデル化したファイルが含まれています。モデルクラスを使用することで、データベースの操作が非常に簡単になります。
アプリ/ビュー – アプリケーションのユーザーが操作するテンプレート/レイアウトファイルが格納されます。テンプレートは、HTMLとデータベースからのデータを組み合わせたものです。
ビン – アプリケーションを起動するための Rails スクリプトが含まれています。また、アプリケーションの設定やアップグレードに使用するその他のスクリプトを含めることもできます。
設定 – 次のような設定ファイルを保持します データベース.yml、環境.rb、ルート.rbアプリケーションの実行に必要なものなど。
db – アプリケーションデータベースの管理に使用されるファイルとスクリプトが含まれています。
リブ – アプリケーション用の拡張モジュールが含まれています。
ログ – 次のようなログファイルが含まれています server.log、development.log、test.log、production.logアプリケーションのデバッグや監視に使用されます。
公共 – HTML ファイルなどの静的ファイルとコンパイル済みアセットが含まれています。 Javaスクリプトファイル、画像、スタイルシート。
test – アプリケーションの機能をテストするために作成するテストファイルが含まれています。
TMP – キャッシュファイルやPIDファイルなどの一時ファイルが含まれています。
ベンダー – サードパーティライブラリが含まれています。
Gemfile – Webアプリケーションを実行するために必要な基本的なgem要件を指定します。gemを開発環境、テスト環境、本番環境などにグループ化することができ、Railsはそれぞれのgemをいつ含めるべきかを自動的に判断します。
Gemfile.lock Gemfileはアプリケーションに必要なgemを明示的にリストアップするのに対し、Gemfile.lockにはGemfileに記載されているgemが依存する他のgemも含まれています。これらのgemは依存関係を満たすために自動的にインストールされます。
Readme.md このファイルを使用して、アプリの機能やインストール方法、実行方法など、アプリケーションに関する重要な詳細情報を共有してください。
レイクファイル – アプリケーションの日常的な管理タスクを自動化するのに役立つ、さまざまな rake タスク定義が含まれています。
config.ru – アプリケーションを起動するためのWebサーバーへのインターフェースを提供するRack設定ファイル。
ディレクトリを変更する todo_app Rails が生成され実行されるディレクトリ Railsサーバー アプリケーションを起動します。 タイプ localhost:3000 ウェブブラウザのアドレスバーに入力してください。すべてうまくいけば、以下の画面が表示されます。
これはアプリケーションのデフォルトのホームページです。このRuby on Railsチュートリアルの後のセクションで変更します。サーバーを停止するには、を押してください。 Ctrlキー+ C.
Rails – コマンドの生成
Railsのgenerateコマンドは、テンプレートを使用してアプリケーション内の多くの便利な要素を生成します。これらのジェネレーターは、多くの時間を節約してくれます。
彼らは、Webアプリケーションが動作するために必要な定型コードを作成します。 Railsが生成する コマンドプロンプトまたはターミナルで単独で実行すると、以下に示すように、利用可能な発電機の一覧が表示されます。
実行することもできます Railsが生成する コマンドの動作の説明を見るには、便利なオプションと使用例が表示されます。下の図は、コマンドを実行したときの出力です。 Railsでコントローラーを生成.
Rails generate scaffold コマンドを使用して、構築中の Todo リスト アプリケーションのモデル、ビュー、およびコントローラーを自動的に作成します。ターミナルで以下を実行します (まだ todo_app ディレクトリ):
rails generate scaffold todo_list title:string description:text
これにより、TodoLists テーブルに対する完全な CRUD (作成、読み取り、更新、削除) Web インターフェースが作成されます。
知っておくと便利なコマンドは次のとおりです。 レールを破壊するそれはあらゆるものを逆転させる Railsが生成する ありません。
レール – ルーティング
Railsルーティングシステム(Railsルーターと呼ばれる)は、Webアプリケーションへのすべての受信リクエストを処理します。 URL 各リクエストをルーティングし、ルーティングファイルで指定された構文を使用して、それを処理するコントローラーアクションにマッピングします(config / routers.rb).
ルートファイルはすべての URL Web アプリケーションの側面。Rails は REST アーキテクチャ スタイルに基づいた RESTful 設計を使用しており、マップを提供します。ping HTTP動詞とリクエストの間 URLコントローラーのアクションへ。
ルートファイルは実行時に生成されました 新しいレール 先ほど説明したとおり、現在作成中のTodoアプリケーションを継続して、以下のコマンドを実行してください。
rails db:migrate
アプリケーションのルートディレクトリにいることを確認してください( todo_app ディレクトリ)。
サーバーを再度起動するには Railsサーバー。 タイプ http://localhost:3000/todo_lists/ ブラウザに と入力して Enter キーを押してください。以下のようなウェブページが表示されるはずです。
これは、scaffold コマンドによって生成された Todo リスト ビューであり、TodoListsController によって制御されます。 index をご利用ください。
ページ上の「新しいToDoリスト」をクリックして、ToDoリストを追加してください。以下の画面が表示されます。
TDS1.35%、収率20.8%を維持するために浸漬法は2.1グラム多くのコーヒーが必要になります URL ようになりました http://localhost:3000/todo_lists/newこれは新しい Todo リストを作成するページであり、TodoListsController によって制御されます。 NEW 方法。
フォームにToDoリストのタイトルと説明を入力し、「ToDoリストを作成」をクリックしてください。 URL に変更する必要があります http://localhost:3000/todo_lists/1以下に示すように。
これは、TodoListsController によって制御される Todo リストの表示ページです。 表示する 方法に戻ると、 http://localhost:3000/todo_lists/これで、新しいToDoリストが追加された以下の画面が表示されるはずです。
Rails は、ルート定義を使用して各リクエストを対応する TodoListsController アクションにマッピングすることができました。 config / routers.rb.
このファイルを覗いてみると、1行だけが表示されます。 リソース:todo_listsこれは、Rails のデフォルトの RESTful ルートの記述方法です。この 1 行で 7 つのルートが作成され、すべてがマップされます。ping TodoListsコントローラーへ。
慣例として、各コントローラーアクションは、データベース内の特定のCRUD(作成、読み取り、更新、削除)操作に対応付けられます。
ラン 鉄道ルート コマンドラインで、アプリケーションで使用可能なさまざまなルートを確認します。下の図は、実行結果を示しています。 鉄道ルート.
Rails – ビュー
ビューレイヤーはMVCパラダイムの構成要素の一つであり、アプリケーションへの各リクエストに対するHTMLレスポンスを生成する役割を担います。RailsはデフォルトでERB(Embedded Ruby)を使用します。ERBはRuby用の強力なテンプレートシステムです。
ERB は、プレーンテキストと変数置換およびフロー制御のための Ruby コードを組み合わせることで、テンプレートの作成と保守を容易にします。ERB テンプレートは、 .html.erb 拡大。
主に2つのタグマーカーを使用します。それぞれのタグマーカーによって、埋め込まれたコードが特定の方法で処理および扱われます。
等号の付いたタグ <%= %> これは、埋め込まれたコードが式であり、テンプレートがレンダリングされる際に、そのコードの実行結果が出力に代入される必要があることを示しています。
等号のない他のタグ <% %> レンダリングエンジンに対し、コードの実行結果を出力に代入したり、出力に表示したりしないよう指示します。
Rails アプリケーションの各コントローラーには、対応するサブディレクトリがあります。 アプリ/ビューコントローラー内の各アクションには対応する .html.erb そのサブディレクトリ内のファイル。
を見てみましょう アプリ/ビュー 作成中の Todo アプリのサブディレクトリには、 やることリスト 含む .html.erb アクションに対応する名前のファイル Todoリスト コントローラ。
Rails – ActiveRecord、Active Recordパターン、ORM
ActiveRecordは、Active RecordパターンのRuby実装です。このパターンでは、クラスがデータベーステーブルを表し、そのクラスのインスタンスがそのテーブルの行を表します。
ActiveRecordは一般的にORM(オブジェクトリレーショナルマップ)と呼ばれています。ping)レイヤーは、最も使い慣れた言語を使用してデータベースを管理できる技術です。データベースに依存しないため、たとえば、データベースを簡単に切り替えることができます。 SQLite, MySQL, PostgreSQLSQL Server、または Oracle ―同じコードとロジックを使用する。
例えば、アプリケーション内のすべてのToDoリストを含む配列を取得する場合、接続を開いてSQL SELECTクエリを実行し、結果を変換するコードを書く必要はありません。
入力するだけです TodoList.allそして、ActiveRecordは、TodoListオブジェクトが格納された配列を返します。この配列は、必要に応じて自由に使用できます。
必要なのは、設定をセットアップすることだけです。 構成/データベース.ymlActiveRecordはデータベースシステム間の違いを処理します。あるデータベースから別のデータベースに切り替える際に、コードを書き直す必要はありません。
あなたはアプリケーションロジックに集中し、ActiveRecordがデータベースへの接続といった低レベルな詳細を処理します。ActiveRecordは命名規則を用いてモデルをデータベーステーブルにマッピングします。
Rails はモデルクラス名を複数形にして対応するデータベーステーブルを見つけます。したがって、クラスの場合 TodoリストActiveRecord は、データベース テーブルを使用します。 やることリスト.
レール – 移行
Railsのマイグレーションとは、アプリケーションのデータベースを進化させるために使用するスクリプトです。SQL文を手動で記述することなく、データベースの設定や変更を行うために使用されます。
これはRubyを使用してデータベーススキーマの変更を定義し、バージョン管理システムを使用して環境間でデータベースを同期させることを可能にします。
Rails Migrations は Ruby のドメイン固有言語 (DSL) を使用します。これは、tracこれにより、要件に基づいてデータベースエンジンを使用したり変更したりすることが可能になります。
マイグレーションはアプリケーション開発に携わるすべてのユーザーと共有でき、変更を元に戻すためにロールバックすることも可能です。これは強力な安全対策であり、データベースに恒久的な損傷を与える心配はありません。
Rails – ActiveRecord の関連付け
2つのActiveRecordモデル間の接続は、関連付けと呼ばれます。関連付けを使用すると、コード内で関連するレコードに対して操作を実行するのがはるかに簡単になります。関連付けには、4つの一般的なカテゴリがあります。
1対1: レコードには、別のモデルのインスタンスが正確に 1 つだけ含まれています。良い例はユーザー プロファイルです。ユーザーはプロファイルを 1 つしか持っていません。 has_one キーワード。
XNUMX対多: 最も一般的な関連付け — あるモデルが別のモデルのインスタンスを 0 以上持つ。 多数あり この関連付けを示すキーワード。
多対多: もう少し複雑です。ActiveRecordでは、これを処理する方法が2つあります。 多くの人に所属している (NAIST) および has_many :throughこれにより、別のテーブルで定義された結合モデルにアクセスできるようになります。
多相的な一対多: Railsにおけるより高度な関連付け。単一の関連付けにおいて、複数の異なるモデルに属する可能性のあるモデルを定義します。
Rails – ActiveRecord の検証
検証は、正しいデータを使用していることを確認するのに役立ちます。なぜなら、不正確なデータを使用するとリスクが高く、ビジネスに損失をもたらす可能性があるからです。
バリデーションは、悪意のあるユーザーがデータベースに有害なデータを挿入しようとするのを防ぐための、追加のセキュリティ層を提供します。Railsは、ActiveRecordにバリデーションヘルパーのクリーンなAPIを提供しており、データベースをクリーンで安全、かつエラーのない状態に保ちます。
ActiveRecordのバリデーションは、モデルオブジェクトをデータベースに保存する前に実行されるため、信頼性が高く、ベストプラクティスに準拠しています。
以下のActiveRecordメソッドは、モデルオブジェクトに対して呼び出されると検証をトリガーします。 作成、作成!、保存、保存!、更新、更新!. バンバージョン(作成!保存!更新!レコードが無効な場合は例外を発生させますが、非感嘆符付きバージョンは代わりに false を返します。
ActiveRecordで最もよく使われる検証ヘルパーは次のとおりです。
- 確認: 2つのフィールド(例えば、パスワードとパスワード確認)の値が同じであることを検証します。プレゼンス検証ヘルパーと組み合わせて使用されます。
- 存在: フィールドが空でないことを確認します。
- 一意性: 例えばユーザー名など、フィールドの一意な値を保証します。
- 長さ: フィールドの文字長に制限を設けます。
また、以下の方法で独自のカスタム検証を作成することもできます。 検証 メソッドにカスタム検証メソッドの名前を渡します。
モデルを確認してください エラー 検証が失敗した理由を特定するためのオブジェクトを使用します。これにより、アプリケーションの制約を強化してセキュリティを高め、有効なデータのみがデータベースに格納されるようにするために必要なすべてが揃います。
Rails – アクションコントローラー
Rails コントローラーは Web アプリケーションの中心です。 ユーザー、モデル、ビュー間のコミュニケーションを促進し、調整します。
コントローラークラスは以下を継承します アプリケーションコントローラーには、他のすべてのコントローラーで実行できるコードが含まれており、さらに から継承しています。 ActionController::Base.
コントローラーはアプリケーションに次のものを提供します。
- 外部からのリクエストを内部アクションにルーティングします。
- キャッシュを管理することで、アプリケーションのパフォーマンスを向上させます。
- ビューテンプレートの機能を拡張するヘルパーメソッドを管理し、ユーザーセッションも管理することで、ユーザーにスムーズな操作体験を提供します。
レール – 構成
Rails アプリケーションの初期化子と設定ファイルを使用して、初期化子、アセット、ジェネレータ、ミドルウェアなどのコンポーネントを設定できます。 設定 ディレクトリ。ファイル例: config/application.rb, config/environments/development.rb, config/environments/test.rb ここでは、これらの設定が使用されます。アプリケーションに独自のカスタム設定を追加することもできます。
Rails – デバッグ
アプリケーションを構築する際には、コードのデバッグが必要になります。Rails は、 バイバグ gem。キーワードを配置することでデバッグセッションを開始できます。 バイバグ アプリケーションコードのどこにでも記述できます。
これにより、その時点で一時的に実行が停止します。byebug gemにはいくつかのコマンドが用意されています。最も便利なコマンドは次のとおりです。
- 次: 次のコード行に移動、スキップping 現在の行によって呼び出されたすべてのメソッド。
- ステップ: に似て 次のしかし、呼び出された各メソッドにステップインします。
- 壊す: コードの実行を停止します。
- 持続する: コードの実行を継続します。
他にもデバッグ用のgemが利用可能です。 こじるこれらはすべて、構文が若干異なるものの、同様の機能を提供します。デバッグ用gemは、アプリケーションにリスクをもたらし、ユーザーエクスペリエンスを損なう可能性があるため、本番環境では使用しないでください。
ログファイルは、本番環境でエラーがないか確認し、適切に対処するために利用できます。また、アプリケーション開発においては、テスト駆動開発(TDD)の手法を採用し、本番環境にデプロイする前にすべてが正常に動作することを確認する必要があります。













