サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
railsguides.jp
このガイドの内容: Railsアプリケーションを作成する方法 モデル、コントローラ、データベースのマイグレーションファイル、および単体テストを作成する方法 開発用サーバーを起動する方法 インタラクティブシェルを利用して、オブジェクトを実験する方法
irb> Person.create(name: "John Doe").valid? => true irb> Person.create(name: nil).valid? => false 上でわかるように、このバリデーションはPersonにname属性がない場合に無効であることを知らせます。2つ目のPersonはデータベースに保存されません。 バリデーションの詳細を説明する前に、アプリケーション全体においてバリデーションがいかに重要であるかについて説明します。 1.1 バリデーションを行なう理由 バリデーションは、正しいデータだけをデータベースに保存するために行われます。たとえば、自分のアプリケーションで、すべてのユーザーには必ず電子メールアドレスと住所が必要だとします。正しいデータだけをデータベースに保存するのであれば、モデルレベルでバリデーションを実行するのが最適です。モデルレ
Railsのプラグインは、コアフレームワークの拡張や変更に使われます。プラグインは以下の機能を提供します。 安定版コードベースを変更せずに、最先端のアイデアを共有できます。 アーキテクチャを分割して、修正や更新を異なるスケジュールで進められます。 コア開発者が新機能の一部のみを共有するのに使えます。 このガイドの内容: プラグインをゼロから作成する方法 プラグイン用のテストの作成方法と実行方法 本ガイドでは以下を理解するために、テスト駆動方式によるプラグイン開発方法を解説します。 HashやStringなどのコアRubyクラスを拡張する acts_asプラグインと同様の手法でApplicationRecordにメソッドを追加する ジェネレータをプラグインのどこに配置するかを理解する ここからは説明上、自分のことを熱烈なバードウォッチャーであるとお考えください。 あなたは鳥の中でも特に Ya
RubyのI18n(国際化・多言語化: internationalizationの略)gemはRuby on Rails 2.2以降からRailsに同梱されています。このgemは、アプリケーションの文言を英語以外の別の1つの言語に翻訳する機能や、多言語サポート機能を簡単かつ拡張可能な方式で導入するためのフレームワークを提供します。 アプリケーションの「国際化」プロセスといえば、使われるすべての文言やロケール固有の要素 (日付や通貨フォーマットなど) の抽象化までの作業を指すのが普通です。一方、「ローカライズ(localization)」とは、具体的な翻訳方法を提供したり、そのためのフォーマットを提供したりすることを指します。1 Railsアプリケーションを国際化するプロセスでは、以下を行う必要があります。 i18nを確実にサポートすること。 ロケール辞書の置き場所をRailsに指示すること
このガイドでは、開発者に向けてRailsのルーティング機能を解説します(訳注: routeとrootを区別するため、訳文ではrouteを基本的に「ルーティング」と訳します)。 このガイドの内容: config/routes.rbのコードの読み方 独自のルーティング作成法 (リソースベースのルーティングが推奨されますが、matchメソッドによるルーティングも可能です) ルーティングのパラメータの宣言方法(コントローラのアクションに渡される) ルーティングヘルパーを使ってパスやURLを自動生成する方法 制限の作成やRackエンドポイントのマウントなどの高度な手法
1 オブジェクトのライフサイクル Railsアプリケーションの通常の操作中に、オブジェクトが作成・更新・破棄されることがあります。Active Recordは、このオブジェクトのライフサイクルへのフックを提供することでアプリケーションとそのデータを制御できます。 コールバックを使うと、オブジェクトの状態の変更「前」または変更「後」にロジックをトリガーできます。コールバックとは、オブジェクトのライフサイクルの特定の瞬間に呼び出されるメソッドのことです。コールバックを使えば、Active Recordオブジェクトがデータベースで初期化・作成・保存・更新・削除・バリデーション・読み込みのたびに実行されるコードを記述できます。 class BirthdayCake < ApplicationRecord after_create -> { Rails.logger.info("Congratula
本章は、Rails初期化プロセスの内部について解説します。上級Rails開発者向けに推奨される、きわめて高度な内容を扱っています。 このガイドの内容: bin/rails serverの利用法 Rails初期化シーケンスのタイムライン 起動シーケンスで通常以外のファイルが必要な場所 Rails::Serverインターフェイスの定義方法と利用法
Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、プロダクト開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 Dev Containerでの開発ガイド VS CodeとDev Containerを使ってRailsアプリケーションの開発を行う方
1 はじめに Action Mailerを使うと、アプリケーションのメーラークラスやビューでメールを送信できます。メーラーの動作はコントローラときわめて似通っています。メーラーはActionMailer::Baseを継承し、app/mailersに配置され、app/viewsにあるビューと結び付けられます。 メーラーには以下が含まれます。 アクション、および関連付けられたビュー(app/viewsに現れる) インスタンス変数(ビューでアクセス可能) レイアウトやパーシャルを利用可能にする機能 paramsハッシュにアクセス可能にする機能 2 メールを送信する このセクションでは、メーラーとビューの作成方法を手順を追って説明します。 2.1 メーラー生成の全手順 2.1.1 メーラーを作成する $ bin/rails generate mailer User create app/maile
Railsの各種ジェネレータは、ワークフローの改善に欠かせないツールです。本ガイドは、Railsジェネレータの作成方法および既存のジェネレータのカスタマイズ方法について解説します。 このガイドの内容: アプリケーションで利用できるジェネレータを確認する方法 テンプレートでジェネレータを作成する方法 Railsがジェネレータを起動前に探索する方法 ジェネレータのテンプレートをオーバーライドしてscaffoldをカスタマイズする方法 ジェネレータをオーバーライドしてscaffoldをカスタマイズする方法 多数のジェネレータを誤って上書きしないためのフォールバック方法 アプリケーションテンプレートの作成方法
1 Active Recordについて Active Recordとは、MVCで言うところのM、つまりモデルの一部であり、データとビジネスロジックを表現するシステムの階層です。Active Recordは、データベースに恒久的に保存される必要のあるビジネスオブジェクトの作成と利用を円滑に行なえるようにします。 RailsのActive RecordがActive Modelとどこが違うかというと、Active Modelは背後にデータベースが「なくてもよい」Rubyオブジェクトを用いてデータをモデル化するときに主に用いられます。Active RecordとActive Modelは、どちらもMVCのMの一部ですが、Active Modelは独自のプレーンなRubyオブジェクト(PORO)としても利用できます。 「Active Record」は、ソフトウェアアーキテクチャパターンを指すという
本ガイドでは、アプリケーションで使われているRuby on Railsのバージョンを新しいバージョンにアップグレードする手順を解説します。アップグレードの手順は、Railsのバージョンごとに記載されています。 1 一般的なアドバイス 既存のアプリケーションをアップグレードする前に、アップグレードする理由を明確にしておく必要があります。「新しいバージョンのどの機能か必要か」「既存コードのサポートがどのぐらい困難になるか」「アップグレードに割り当てられる時間と人員スキルはどのぐらいか」など、いくつもの要素を調整しなければなりません。 1.1 テスティングのカバレッジ アップグレード後にアプリケーションが正常に動作していることを確認するには、良いテストカバレッジをアップグレード前に準備しておくのがベストです。アプリケーションを一度に検査できる自動テストがないと、変更点をすべて手動で確認するのに膨
Rails 4.2の注目ポイント Active Job メールの非同期処理 Adequate Record Web Console 外部キーのサポート 本リリースノートでは、主要な変更についてのみ説明します。ここに紹介されていない機能、バグ修正、変更の詳細についてはGitHubにあるRailsメインリポジトリの コミットリスト を参照してください。 1 Rails 4.2へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。Railのバージョンが4.1に達していない場合は、まずアプリケーションをRails 4.1にアップグレードし、アプリケーションが期待どおりに動作することを確認してからRails 4.2にアップグレードしてください。アップグレードの際に注意すべき点のリストについては、Ruby on Rails
本ガイドでは、JavaScript機能をRailsアプリケーションに統合する方法について解説します。外部のJavaScriptパッケージを利用する場合に使えるオプションや、RailsでTurboを使う方法についても解説します。 このガイドの内容: Node.jsやYarnやJavaScriptのバンドラーを使わずにRailsを利用する方法 JavaScriptをimport maps・Bun・esbuild・Rollup・webpackでバンドルする新規Railsアプリケーションを作成する方法 Turboの概要と利用法 Railsが提供するTurbo HTMLヘルパーの利用法 1 import maps import mapsは、バージョン付けされたファイルに対応する論理名を用いてJavaScriptモジュールをブラウザで直接importできます。import mapsはRails 7から
Railsフレームワークのサポートは、新機能(New feature)、バグ修正(bug fixes)、セキュリティ問題(security issues)、重大なセキュリティ問題(severe security issue)の4つのグループに分かれています。セキュリティリリースを除いて、すべてのバージョン表記はX.Y.Zの形式に従います。 1 バージョニング Railsのバージョン命名はsemverのSemantic Versioningをシフトしたものに従っています。 パッチZ このパッチではバグ修正のみを行います。API変更や機能追加はこのパッチでは行いません。ただし、必要に応じてセキュリティ修正が行われることもあります。 マイナーY 新機能にAPIの変更が含まれることもあります(Semverで言うメジャーバージョンに相当)。破壊的変更(breaking changes)の場合は、必ず
本ガイドは、アプリケーションをテストするためにRailsに組み込まれているメカニズムについて解説します。 このガイドの内容: Railsテスティング用語 アプリケーションに対する単体テスト、機能テスト、結合テスト、システムテスト(system test)の実施 その他の著名なテスティング方法とプラグインの紹介 1 Railsアプリケーションでテストを作成する理由 Railsでは、テストをきわめて簡単に作成できます。テストの作成は、モデルやコントローラを作成する時点でテストコードのスケルトンを作成することから始まります。 Railsのテストが作成されていれば、後はそれを実行するだけで、特に大規模なリファクタリングを行なう際にコードが期待どおりに動作していることを即座に確認できます。 Railsのテストはブラウザのリクエストをシミュレートできるので、ブラウザを手動で操作せずにアプリケーションの
1 Active Recordクエリインターフェイスとは? 生のSQLを使ってデータベースのレコードを検索することに慣れた人がRailsに出会うと、Railsでは同じ操作をずっと洗練された方法で実現できることに気付くでしょう。Active Recordを使うことで、SQLを直に実行する必要はほぼなくなります。 Active Recordは、ユーザーに代わってデータベースにクエリを発行します。発行されるクエリは多くのデータベースシステム(MySQL、MariaDB、PostgreSQL、SQLiteなど)と互換性があります。Active Recordを使えば、利用しているデータベースシステムの種類にかかわらず同じ記法を使えます。 本ガイドのコード例では以下のモデルを使います。 class Book < ApplicationRecord belongs_to :supplier belong
このガイドはRackのミドルウェア、urlマップ、Rack::BuilderといったRackのプロトコルや概念に関する実用的な知識を身につけていることを前提にしています。 1 Rack入門 Rackは、RubyのWebアプリケーションに対して、モジュール化された最小限のインターフェイスを提供して、インターフェイスを広範囲に使えるようにします。RackはHTTPリクエストとレスポンスを可能なかぎり簡単な方法でラッピングすることで、Webサーバー、Webフレームワーク、その間に位置するソフトウェア(ミドルウェアと呼ばれています)のAPIを1つのメソッド呼び出しの形にまとめます。 Rackに関する解説はこのガイドの範疇を超えてしまいます。Rackに関する基本的な知識が不足している場合は、下記のリソース を参照してください。 2 RailsとRack 2.1 RailsアプリケーションのRackオ
1 アセットパイプラインについて アセットパイプライン(asset pipeline)は、JavaScriptとCSSアセットの配信を処理するためのフレームワークを提供します。これは、HTTP/2のような技術や、アセットの連結や最小化といった技術を活用することによって行われます。アプリケーションは、最終的に他のgemのアセットと自動的に結合できるようになります。 アセットパイプラインは importmap-rails gem、sprockets gem、sprockets-rails gem によって実装されており、デフォルトで有効になっています。新しいアプリケーションを作成する際に、以下のように--skip-asset-pipelineオプションを渡すとアセットパイプラインを無効にできます。 本ガイドでは、CSSの処理にsprocketsを、JavaScriptの処理にimportmap
本ガイドでは、バックグラウンドで実行するジョブの作成、キュー登録 (エンキュー: enqueue)、実行方法について解説します。 このガイドの内容: ジョブの作成方法 ジョブの登録方法 バックグラウンドでのジョブ実行方法 アプリケーションから非同期にメールを送信する方法 1 はじめに Active Jobは、ジョブを宣言し、それによってバックエンドでさまざまな方法によるキュー操作を実行するためのフレームワークです。ジョブには、定期的なクリーンアップを始めとして、請求書発行やメール配信など、あらゆる処理がジョブになります。これらのジョブをより細かな作業単位に分割して並列実行することもできます。 2 Active Jobの目的 Active Jobの主要な目的は、あらゆるRailsアプリケーションにジョブ管理インフラを配置することです。これにより、Delayed JobとResqueなどのよう
本ガイドでは、Railsの「エンジン」について解説します。Railsエンジンのきわめて簡潔で使いやすいインターフェイスを用いて、ホストとなるRailsアプリケーションに機能を追加する方法についても解説します。 このガイドの内容: エンジンの役割 エンジンの生成方法 エンジンのビルド方法 エンジンをアプリケーションにフックする エンジン機能をアプリケーションで上書きする 読み込み/設定フックでRailsフレームワークが読み込まれないようにする方法 1 Railsにおけるエンジンの役割 エンジン (engine) は、ホストとなるRailsアプリケーションに機能を提供するミニチュア版Railsアプリケーションとみなせます。この場合、ホストとなるRailsアプリケーションは、実際にはエンジンに「ターボをかけた」ようなものにすぎず、Rails::ApplicationクラスはRails::Engi
Active SupportはRuby on Railsのコンポーネントであり、Ruby言語の拡張やユーティリティを提供します。 Active Supportは言語レベルで基本部分を底上げして豊かなものにし、Railsアプリケーションの開発とRuby on Railsそれ自体の開発に役立てるべく作られています。 このガイドの内容: コア拡張機能(Core Extensions)について すべての拡張機能を読み込む方法 必要な拡張機能だけを利用する方法 Active Supportが提供する拡張機能一覧
Webアプリケーションのフォームは、ユーザー入力で多用されるインターフェイスです。しかしフォームのマークアップは、フォームのコントロールの命名法や大量の属性を扱わなければならず、作成もメンテナンスも退屈な作業になりがちです。そこでRailsでは、フォームのマークアップを生成するビューヘルパーを提供することで作業をシンプルにしています。このガイドは、さまざまなヘルパーメソッドや、利用する時期を理解するのに役立ちます。 このガイドの内容: 基本的なフォーム(検索フォームなど)の作成法 データベースの特定のレコードを作成・編集する、モデルベースのフォーム作成法 複数の種類のデータからセレクトボックスを生成する方法 Railsが提供する日付時刻関連ヘルパー ファイルアップロード用フォームの動作を変更する方法 外部リソース向けにフォームを作成する方法とauthenticity_tokenを設定する方
このマニュアルでは、Webアプリケーション全般におけるセキュリティの問題と、Railsでそれらの問題を回避する方法について説明します。 このガイドの内容: 本ガイドで取り上げられている問題に対するあらゆる対策 Railsにおけるセッションの概念、セッションに含めるべき項目、有名なセッション攻撃 Webサイトを開くだけで(CSRFによる)セキュリティ問題が発生するしくみ ファイルの取扱い上の注意、管理インターフェイスを提供する際の注意事項 ユーザーを正しく管理する(ログイン・ログアウトのしくみ、あらゆるレイヤにおける攻撃方法) 最も有名なインジェクション攻撃方法の解説 1 はじめに Webアプリケーションフレームワークは、Webアプリケーションの開発を支援するために作られました。フレームワークの中にはセキュリティを比較的高めやすいものもあります。実際のところ、あるフレームワークは他のよりも安
1 本ガイドの前提条件 本ガイドは、Railsアプリケーションを構築したいと考えているRails初心者を対象にしています。読者にRailsの経験があることは前提としていません。 Railsとは、プログラミング言語「Ruby」の上で動作するWebアプリケーションフレームワークです。ただしプログラミング経験がまったくない人がいきなりRailsを学ぼうとすると、かなり大変な作業になるでしょう。オンラインで学べる洗練されたコンテンツはたくさんあるので、その中から以下をご紹介します。 プログラミング言語Ruby公式Webサイト プログラミング学習コンテンツまとめ いずれもよくできていますが中には古いものもあり、たとえば通常のRails開発で見かけるような最新の構文がカバーされていない可能性もあります。 2 Railsとは何か Railsとは、プログラミング言語「Ruby」で書かれたWebアプリケーシ
1 関連付けを使う理由 Railsの「関連付け(アソシエーション: association)」は、2つのActive Recordモデル同士のつながりを指します。モデルとモデルの間で関連付けを行なう理由はおわかりでしょうか。関連付けを行うことで、自分のコードの共通操作がシンプルになって扱いやすくなります。 簡単なRailsアプリケーションを例にとって説明しましょう。このアプリケーションにはAuthor(著者)モデルとBook(書籍)モデルがあります。一人の著者は、複数の書籍を持っています。 関連付けを設定していない状態では、モデルの宣言は以下のようになります。
Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、Webサービス開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 モデル Active Record の基礎 Active Recordの基礎となるモデル、データベースへの永続的な保存、Acti
Railsの仕組みを体系的に学べる大型コンテンツ Rails Guides に基づいた1,600ページ超えの大型リファレンスです。 プロダクト開発に役立つ実践的な知識が満載 Railsチュートリアルを完走し、プロダクト開発中の人に最適です。 全文検索やバージョン毎の検索にも対応 Proプランでは、さらに効率的な活用をサポートします。 このアイコンが付いているガイドは現在作業中 (WIP: Work In Progress) です。作業中のガイドはそれなりに有用ではありますが、不完全な情報やエラーが含まれている可能性があります。 はじめに Rails をはじめよう Railsのインストール方法と最初のRailsアプリケーションの作成に必要なすべてを解説します。 モデル Active Record の基礎 Active Recordの基礎となるモデル、データベースへの永続的な保存、Active
このページを最初にブックマークしてみませんか?
『Ruby on Rails ガイド:体系的に Rails を学ぼう』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く