Ruby on Rails ガイドのすすめ


この記事は[Ruby on Rails Advent Calendar 2014](http://qiita.com/advent-calendar/2014/rails)の12/24エントリです。

みなさんRails書いていますか？
私は書いています。

ところでみなさんは普段Railsの調べものをするとき、どんな資料にあたりますか？

[Ruby on Rails チュートリアル](http://railstutorial.jp/)? [RailsによるアジャイルWebアプリケーション開発](http://www.amazon.co.jp/Rails%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-%E7%AC%AC4%E7%89%88-Sam-Ruby/dp/4274068668/ref=pd_sim_b_4?ie=UTF8&refRID=0ERH7GMHG2JSGRF8VZK9)? はたまた[パーフェクト Ruby on Rails](http://www.amazon.co.jp/%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88-Ruby-Rails-%E3%81%99%E3%81%8C%E3%82%8F%E3%82%89-%E3%81%BE%E3%81%95%E3%81%AE%E3%82%8A/dp/4774165166/ref=sr_1_5?ie=UTF8&qid=1419396819&sr=8-5&keywords=rails)?

いずれも良書(と良ドキュメント)です。これらに負けず劣らずの読み応えがある`Ruby on Rails ガイド`(以下、Railsガイド)を今回は紹介したいと思います。

## Ruby on Rails ガイドって？

Railsの[レポジトリ](https://github.com/rails/rails/tree/master/guides)に含まれる、Railsの解説記事たちが、Railsガイドです。

Railsガイドの特徴として、以下の点があげられると思います。

+ それなりのペースで更新されている(気がする)

Railsのレポジトリに含まれているため、それなりのペースで更新されているような気がします。
Rails4.2のリリースにあわせて[Active Job](http://guides.rubyonrails.org/active_job_basics.html)や[リリースノート](http://guides.rubyonrails.org/4_2_release_notes.html)もサイトにあります。

+ Railsの個々の機能を丁寧に解説するスタイル

[Active Record](http://guides.rubyonrails.org/active_record_basics.html)、[Form Helpers](http://guides.rubyonrails.org/form_helpers.html)、[Action Controller](http://guides.rubyonrails.org/action_controller_overview.html)など、個々の機能ごとに解説されています。また高度なトピックとして[セキュリティ](http://guides.rubyonrails.org/security.html)、[Railsの設定](http://guides.rubyonrails.org/configuring.html)、[アセットパイプライン](http://guides.rubyonrails.org/asset_pipeline.html)などの説明もあります。

+ 大部分が日本語化されている！

そしてなんと！　これらの内容を[こちら](http://railsguides.jp/)では日本語で読むことができます！！　一部翻訳が終わっていないところもありますが、８割方が日本語で読めるのです。

## どんなときに読むのか？

+ Railsに関する体系的な知識を身につけたいとき

[ルーティング](http://railsguides.jp/routing.html)にまとまっているパスとコントローラーアクションの一覧や、[アソシエーション](http://railsguides.jp/association_basics.html)に載っている、has_manyで追加されるメソッドなどは、よくまとまっていると思います。

+ 教科書レベルを超えて、ちょっとRailsに手を加えたいとき

たとえば開発環境などで、翻訳忘れを確認したいとき。エラーハンドリングの方法を変更する必要があります(通常`MissingTranslationData`はアプリ内でつぶされてしまい、上まであがってこない)。Railsガイドにはキチンとやり方が書いてあります([標準以外の例外ハンドラを使用する](http://railsguides.jp/i18n.html#%E6%A8%99%E6%BA%96%E4%BB%A5%E5%A4%96%E3%81%AE%E4%BE%8B%E5%A4%96%E3%83%8F%E3%83%B3%E3%83%89%E3%83%A9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B))。

ほかにも例えばミドルウェアを調整したいときには[ミドルウェアスタックを設定する](http://railsguides.jp/rails_on_rack.html#%E3%83%9F%E3%83%89%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)が参考になるでしょう。

+ Railsのコードを読むまえのウォーミングアップとして

最終的にはRailsのコードを読むことになったとき。Railsのコードに飛び込む前に、一度読んでおくと捗るかもしれません。

## 表に出ていないガイドたち

Railsのレポジトリにはあっても、ガイドの目次には載っていないものもあります。[ここ](https://github.com/rails/rails/tree/master/guides/source)を眺めてみると

+ [Active Model](https://github.com/rails/rails/blob/master/guides/source/active_model_basics.md)

+ [Caching](https://github.com/rails/rails/blob/master/guides/source/caching_with_rails.md)

+ [Initialization Process](https://github.com/rails/rails/blob/master/guides/source/initialization.md)

とかがありますね。

## まとめ

たまーに原文(英語)の情報自体が間違っていることもありますが、そんなときこそ本家にPRするチャンス。Ruby on Rails ガイドですてきなRailsライフを。