サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
railsguides.jp
本ガイドでは、Railsアプリケーションをclassicモードからzeitwerkモードに移行する方法について解説します。 このガイドの内容: classicモードとzeitwerkモードについて classicからzeitwerkに切り替える理由 zeitwerkモードを有効にする アプリケーションがzeitwerkモードで動いていることを検証する プロジェクトが正しく読み込まれることをコマンドラインで検証する プロジェクトが正しく読み込まれることをテストスイートで検証する 想定されるエッジケースの対応方法 Zeitwerkで利用できる新機能 1 classicモードとzeitwerkモードについて Railsは最初期からRails 5まで、Active Supportで実装されたオートローダーを用いていました。このオートローダーはclassicと呼ばれ、Rails 6.xでは引き続き利
1 Rails 7.0にアップグレードする 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 6.1までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 7.0にアップデートしてください。アップグレードの注意点などについてはRailsアップグレードガイドを参照してください。 2 主要な機能 3 Railties 変更点について詳しくはChangelogを参照してください。 3.1 削除されたもの dbconsoleで非推奨化されていたconfigを削除。 3.2 非推奨化 特になし。 3.3 主な変更点 Sprocketsへの依存がオプショナルになった rails gemがsprockets-railsに依存しなくなりました。自分の
本ガイドではWebpackerのインストール方法と、Railsアプリケーションのクライアント側で用いるJavaScriptやCSSなどのアセットをWebpackerで利用する方法について解説します。ただしWebpackerの開発は終了した点にご注意ください。(訳注: 移行方法は末尾の参考資料をご参照ください) このガイドの内容: Webpackerとは何か、およびSprocketsと異なっている理由 Webpackerのインストール方法、および選択したフレームワークとの統合方法 JavaScriptアセットをWebpackerで管理する方法 CSSアセットをWebpackerで管理する方法 静的アセットをWebpackerで管理する方法 Webpackerを利用しているサイトのデプロイ方法 WebpackerをRailsエンジンやDockerコンテナなどの異なるコンテキストで利用する方法
本ガイドでは、Rails 5.2 以前のClassicモード自動読み込みについて解説します。Rails 6.0 以降のZeitwerkモードについては、定数の自動読み込みと再読み込み (Zeitwerk) を参照してください。 Ruby on Railsでコードを書き換えると、開発者がサーバーを再起動しなくても、プリロードされたかのように動作します。 通常のRubyプログラムのクラスであれば、依存関係のあるプログラムを明示的に読み込む必要があります。 Rubyistとしての本能は、上のコードを見た瞬間に冗長な部分を目ざとく見つけることでしょう。クラスが、それが保存されているファイル名と同じ名前で定義されるのであれば、何とかしてそれらを自動的に読み込めないものでしょうか。依存するファイルを探索してその結果を保存しておけばよいのですが、こうした依存関係は不安定になりがちです。 さらに、Kern
このガイドでは、Active Recordで複数のデータベースを利用する方法について説明します。 このガイドの内容: アプリケーションで複数のデータベースをセットアップする方法 コネクションの自動切り替えの仕組み 複数のデータベースにおける水平シャーディングの利用方法 サポートされている機能と現在進行中の機能 アプリケーションが人気を得て利用されるようになってくると、新しいユーザーやユーザーのデータをサポートするためにアプリケーションをスケールする必要が生じてきます。アプリケーションをスケールする方法の1つが、データベースレベルでのスケールでしょう。Railsが複数のデータベース(Multiple Databases)をサポートするようになったので、すべてのデータを1箇所に保存する必要はありません。 現時点でサポートされている機能は以下のとおりです。 複数の「writer」データベースと、
本ガイドでは、リッチテキストコンテンツの扱いを始めるのに必要なものをすべて提供します。 このガイドの内容: Action Textの設定方法 リッチテキストコンテンツの扱い方 リッチテキストコンテンツにスタイルを付ける方法 1 はじめに Action Textを使って、Railsにリッチテキストコンテンツと編集機能を導入できます。Action Textに含まれているTrixエディタは、書式設定/リンク/引用/リスト/画像埋め込み/ギャラリーなどあらゆるものを扱えます。 Trixエディタが生成するリッチテキストコンテンツは独自のRichTextモデルに保存され、このモデルはアプリケーションの既存のあらゆるActive Recordモデルと関連付けられます。 あらゆる埋め込み画像(およびその他の添付ファイル)は自動的にActive Storageに保存され、includeされたRichText
Rails 6.0の注目ポイント: Action Mailbox Action Text 並列テスト Action Cableのテスト支援 本リリースノートでは、主要な変更についてのみ説明します。多数のバグ修正および変更点については、GitHubのRailsリポジトリにある各コミットのchangelogを参照してください。 1 Rails 6.0へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 5.2までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 6.0にアップデートしてください。アップグレードの注意点などについてはRailsアップグレードガイドを参照してください。 2 主要な機能 2.1 Action M
このガイドの内容: Railsが自動的に並行処理するコードの紹介 Rails内部のコードと手動の並行処理を統合する方法 アプリケーションの全コードをラップする方法 アプリケーションの再読み込みへの影響 1 自動的な並行処理 Railsでは同時に複数の操作を自動的に実行できます。 スレッド化Webサーバー(RailsデフォルトのPumaなど)を用いると、複数のHTTPリクエストが同時に配信され、各リクエストはコントローラ固有のインスタンスに渡されます。 スレッド化Active Jobアダプタ(Rails組み込みのAsyncなど)も、同様に複数のジョブを同時実行します。Action Cableも同様に管理されます。 これらの仕組みはすべてマルチスレッドに関連します。各スレッドは、グローバルなプロセス空間(クラス、クラスの設定、グローバル変数など)を共有しつつ、何らかのオブジェクト(コントローラ
PostgreSQLアダプタを利用するには、PostgreSQL 9.3以上がインストールされている必要があります。これより古いバージョンはサポートされません。 PostgreSQLを使う場合は、『Rails アプリケーションを設定する』ガイドをお読みください。Active RecordをPostgreSQL向けに正しくセットアップする方法が記載されています。 1 データ型 PostgreSQLにはさまざまな種類のデータ型(datatype)があります。以下はPostgreSQLアダプタでサポートされているデータ型のリストです。 1.1 bytea(バイナリデータ) データ型の定義 関数と演算子 # db/migrate/20140207133952_create_documents.rb create_table :documents do |t| t.binary 'payload'
Rails 5.2の注目ポイント: Active Storage Redisキャッシュストア HTTP/2 Early Hints credential管理 Content Security Policy(CSP) 本リリースノートでは、主要な変更についてのみ説明します。多数のバグ修正および変更点については、GitHubのRailsリポジトリにあるコミットリストのchangelogを参照してください。 1 Rails 5.2へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 5.1までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 5.2にアップデートしてください。アップグレードの注意点などについてはRuby o
このガイドはActive Recordモデルにファイルを添付する方法について説明します。 本ガイドの内容: あるレコードに1個または複数のファイルを添付する方法 添付ファイルを削除する方法 添付ファイルへのリンク方法 バリアントを利用して画像を変形する方法 PDFや動画などの非画像ファイルの内容を代表するプレビュー画像の生成方法 ブラウザからストレージサービスに直接ファイルをアップロードする方法 テスト中に保存したファイルをクリーンアップする方法 追加のストレージサービスをサポートするための実装方法 1 Active Storageについて Active Storageは、Amazon S3、Google Cloud Storage、Microsoft Azure Storageなどのクラウドストレージサービスへのファイルのアップロードや、ファイルをActive Recordオブジェクトに
Rails 5.1 の注目ポイント Yarnのサポート Webpackのサポート(オプション) デフォルトでのjQuery依存を廃止 システムテスト 秘密情報の暗号化 パラメータ化されたmailer directルーティングとresolvedルーティング form_forとform_tagのform_withへの統合 本リリースノートでは、主要な変更についてのみ説明します。多数のバグ修正および変更点については、GitHubのRailsリポジトリにあるコミットリストのchangelogを参照してください。 1 Rails 5.1へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 5.0までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確
Active SupportはRailsのコア機能の1つであり、Ruby言語の拡張、ユーティリティなどを提供するものです。Active Supportに含まれているInstrumentation APIは、Rubyコードで発生する特定の動作の計測に利用できます。Railsアプリケーション内部やフレームワーク自身の計測はもちろん、必要であればRails以外のRubyスクリプトなども測定できます。 本ガイドでは、RailsなどのRubyコード内のイベント計測に使われる、Active SupportのInstrumentation APIについて解説します。 このガイドの内容: Instrumentationでできること Railsフレームワーク内のInstrumentationフック フックにサブスクライバを追加する 独自のInstrumentationを実装する 1 Instrumentat
このガイドの内容: API専用アプリケーションを支援するRailsの機能 Railsの起動時にブラウザ向け機能をオフにする方法 ミドルウェアの選定 コントローラで使うモジュールの選定 1 APIアプリケーションについて 従来、Railsの「API」というと、プログラムからアクセスできるAPIをWebアプリケーションに追加することを指すのが通例でした。たとえば、GitHubが提供するAPI はカスタムクライアントから利用できます。 近年、さまざまなクライアント側フレームワークが登場したことによって、Railsで構築したバックエンドサーバ―を他のWebアプリケーションとネイティブアプリケーションの間で共有する手法が増えてきました。 たとえば、Twitterは自社のWebアプリケーションで パブリックAPI を利用しています。このWebアプリケーションは、JSONリソースを消費するだけの静的サイ
本ガイドでは、Action Cableのしくみと、WebSocketをRailsアプリケーションに導入してリアルタイム機能を実現する方法について解説します。 このガイドの内容: Action Cableの概要、バックエンドとフロントエンドの統合 Action Cableの設定方法 チャネルの設定方法 Action Cable向けのデプロイとアーキテクチャの設定 1 はじめに Action Cableは、WebSocketとRailsのその他の部分をシームレスに統合します。Action Cableを導入すると、Rails アプリケーションのパフォーマンスとスケーラビリティを損なわずに、通常のRailsアプリケーションと同じスタイル・方法でリアルタイム機能をRubyで記述できるようになります。Action Cableはフルスタックのフレームワークであり、クライアント側のJavaScriptフレ
通常のRubyプログラムでは、使いたいクラスやモジュールを定義したファイルを明示的に読み込みます。たとえば、以下のコントローラではApplicationControllerクラスやPostクラスを参照しており、通常はこれらに対してrequire呼び出しを行います。 # Railsではこのように書かないこと require "application_controller" require "post" # Railsではこのように書かないこと class PostsController < ApplicationController def index @posts = Post.all end end Railsは、必要に応じてクラスやモジュールを開発者の代わりに自動読み込み(autoload)します。これが可能になるのは、RailsがセットアップするいくつかのZeitwerkローダーのお
Rails 5.0の注目ポイント Action Cable Rails API Active Record属性API テストランナー Rakeコマンドをrailsコマンドに統一 Sprockets 3 Turbolinks 5 Ruby 2.2.2以上が必須 本リリースノートでは、主要な変更についてのみ説明します。多数のバグ修正および変更点については、GitHubのRailsリポジトリにあるコミットリストのchangelogを参照してください。 1 Rails 5.0へのアップグレード 既存のアプリケーションをアップグレードするのであれば、その前に質のよいテストカバレッジを用意するのはよい考えです。アプリケーションがRails 4.2までアップグレードされていない場合は先にそれを完了し、アプリケーションが正常に動作することを十分確認してからRails 5.0にアップデートしてください。アッ
3.1 Railsバージョンごとのデフォルト値 config.load_defaults はターゲットバージョンとそれ以前のすべてのバージョンのデフォルトの設定値を読み込みます。たとえば、config.load_defaults 6.1はバージョン6.1までの全バージョンのデフォルトを読み込みます。 ターゲットバージョンごとに関連するデフォルト値を以下に示します。値が矛盾する場合は、新しいバージョンが古いバージョンより優先されます。 3.1.1 ターゲットバージョン7.2のデフォルト値 config.active_job.enqueue_after_transaction_commit: :default config.active_record.postgresql_adapter_decode_dates: true config.active_record.validate_migr
RailsのテンプレートはシンプルなRubyファイルであり、新規または既存のRailsプロジェクトにgemやイニシャライザを追加するためのDSL(ドメイン固有言語)を含んでいます。 このガイドの内容: テンプレートを使ってRailsアプリケーションの生成/カスタマイズを行う方法 RailsテンプレートAPIを使って再利用可能なテンプレートを開発する方法
本ガイドでは、キャッシュを導入してRailsアプリケーションを高速化する方法を解説します。 「キャッシュ(caching)」とは、リクエスト・レスポンスのサイクルの中で生成されたコンテンツを保存しておき、次回同じようなリクエストが発生したときのレスポンスでそのコンテンツを再利用することを指します。 多くの場合、キャッシュはアプリケーションのパフォーマンスを効果的に増大するのに最適な方法です。キャッシュを導入することで、単一サーバーや単一データベースのWebサイトでも、数千ユーザーの同時接続による負荷に耐えられるようになります。 Railsには、すぐ利用できるキャッシュ機能がいくつも用意されています。本ガイドでは、それぞれの機能について目的を解説します。Railsのキャッシュ機能を使いこなすことで、応答時間の低下や高額なサーバー使用料に悩まされずに、Railsアプリケーションが数百万ビューを
本ガイドでは、Action ControllerとAction Viewによる基本的なレイアウト機能について解説します。 本ガイドの内容: Railsに組み込まれているさまざまなレンダリング(出力)メソッドの利用法 複数のセクションでレイアウトを作成する方法 パーシャルを利用してビューをDRYにする方法 レイアウトをネストする方法(サブテンプレート) 1 レンダリングの概要 本ガイドでは、「コントローラ・ビュー・モデル」三角形のうち、コントローラとビューの間でのやりとりを中心に扱います。ご存じのように、Railsのコントローラはリクエスト処理プロセス全体の制御を担当し、(ビジネスロジックのような)重い処理はモデルの方で行なうのが普通です。モデルの処理が完了すると、コントローラは処理結果をビューに渡し、ビューはユーザーにレスポンスを返します。本ガイドでは、コントローラからビューに結果を渡す方
Railsガイド 電子書籍版 検索・過去バージョン対応 Railsガイドが電子書籍になりました! 😆🎉✨ Railsの各機能の使い方からRailsに貢献する方法まで、 1,600ページ越えの一冊をお手元に置いてみませんか? 前作のRailsチュートリアルに続く第2弾の大型プロジェクトがついに電子書籍になりました! 前作も800ページの大作でしたが、今作のRailsガイドは1,600ページ越えの超大作となっています。電子書籍版はオフラインで見れるだけでなく、電子書籍内で検索ができます。キーワードやメソッド名で調べたい場面などで便利です 🔍💨 活用例 対象読者 Railsチュートリアルを読み終わった完走者 Ruby on RailsでWebサービス開発を学んでいる学習者 Ruby on RailsでWebサービス開発に関わっているエンジニア Ruby on Railsの仕組みを詳しく知
マイグレーション(migration)はActive Recordの機能の1つであり、データベーススキーマが長期にわたって進化を安定して繰り返せるようにするための仕組みです。マイグレーション機能のおかげで、スキーマ変更を生SQLで記述せずに、Rubyで作成されたマイグレーション用のDSL(ドメイン固有言語)を用いてテーブルの変更を簡単に記述できます。 このガイドの内容: マイグレーション作成で利用できるジェネレータ Active Recordが提供するデータベース操作用メソッド群の解説 マイグレーション実行とスキーマ更新用のrailsタスクの解説 マイグレーションとスキーマファイルschema.rbの関係 1 マイグレーションの概要 マイグレーションは、データベーススキーマの継続的な変更(英語)を、統一的かつ簡単に行なうための便利な手法です。マイグレーションではRubyのDSLが使われてい
このガイドの内容: Action Viewの概要とRailsでの利用法 テンプレート、パーシャル(部分テンプレート)、レイアウトの最適な利用法 Action Viewで提供されるヘルパーの紹介 ビューのローカライズ方法 1 Action Viewについて RailsにおけるWebリクエストは、Action ControllerとAction Viewで扱われます。通常、Action Controllerは、データベースとのやりとりや、必要に応じたCRUD(Create/Read/Update/Delete)アクションの実行に関与します。Action View はその後レスポンスを実際のWebページにまとめる役割を担います。 Action Viewのテンプレートは、HTMLタグの間にERB(Embedded Ruby)を含む形式で書かれます。ビューテンプレートがコードの繰り返しでうずまって乱
1 環境を構築する他の方法について ローカルマシンでRailsを開発用にセットアップしたくない場合は、Codespaces、VS Code Remote Plugin、またはrails-dev-boxを利用できます。これらのオプションについて詳しくはこちらを参照してください。 2 ローカル開発環境のセットアップ Ruby on Railsを自分のコンピュータ上で開発したい場合は、以下の手順を参照してください。 2.1 Gitをインストールする Ruby on Railsではソースコード管理にGitを使っています。インストール方法についてはGitホームページに記載されています。Gitを学べる資料はインターネット上に多数あります。 2.2 Ruby on Railsリポジトリをクローンする Ruby on Railsのソースコードを置きたいディレクトリ(ここに独自railsサブディレクトリが作
1 issueを作成する Ruby on RailsではGitHubのIssueトラッキング機能でissueをトラッキングしています(issueは、主にバグや新しいコードの貢献に使われます)。Ruby on Railsでバグを見つけたら、そこから貢献を開始できます。GitHubへのissue送信、issueへのコメント、プルリクエストの作成を行うには、まずGitHubアカウント(無料)を作成する必要があります。 Ruby on Railsの最新リリースで見つけたバグは最も注目を集める可能性があります。Railsコアチームは、edge Rails(開発中のRailsのコード)でのテストに時間を割いてくれる方からのフィードバックも常に歓迎しています。テスティング用にedge Railsを入手する方法については後述します。Railsのどのバージョンがサポートされているかについては、メンテナンスポ
1 デバッグに利用できるビューヘルパー 変数にどんな値が入っているかを確認する作業は何かと必要になります。Railsでは以下の3つのメソッドを利用できます。 debug to_yaml inspect 1.1 debug debugヘルパーは<pre>タグを返します。このタグの中にYAML形式でオブジェクトが出力されます。これにより、あらゆるオブジェクトを人間が読めるデータに変換できます。たとえば、以下のコードがビューにあるとします。
本ガイドでは、コントローラの動作と、アプリケーションのリクエストサイクルにおけるコントローラの役割について解説します。 このガイドの内容: コントローラを経由するリクエストの流れを理解する コントローラに渡されるパラメータを制限する方法 セッションやcookieにデータを保存する理由とその方法 リクエストの処理中にフィルタを使ってコードを実行する方法 Action Controller組み込みのHTTP認証機能 ユーザーのブラウザにデータを直接ストリーミング送信する方法 機密性の高いパラメータをフィルタしてログに出力されないようにする方法 リクエスト処理中に発生する可能性のある例外の取り扱い 組み込みのヘルスチェックエンドポイントをロードバランサーやアップタイムモニタで活用する方法 1 コントローラの役割 Action Controllerは、MVCアーキテクチャの「C」に相当します。リク
1 はじめに Active Modelは多くのモジュールを含むライブラリであり、それらのモジュールはRailsのAction Packライブラリとやりとりする必要のあるフレームワークで使用されます。Active Modelは、クラスで使用する既知の一連のインターフェイスを提供します。そのうちのいくつかについて以下で説明します。 1.1 API ActiveModel::API は、クラスをAction PackやAction Viewと連携させる機能をクラスに追加します。 class EmailContact include ActiveModel::API attr_accessor :name, :email, :message validates :name, :email, :message, presence: true def deliver if valid? # deliv
次のページ
このページを最初にブックマークしてみませんか?
『Ruby on Rails ガイド:体系的に Rails を学ぼう』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く