ボクココ

個人開発に関するテックブログ

Rails Guide で参考になった記事のまとめ

Rails Guideは常に最新のドキュメントがまとめられているため、たまにページに行くと、有益な情報が転がっていることが多々ある。

ちょっと理解が怪しい部分や、開発中によく迷う部分とかをたまに読んでみると、新しい発見があって、成長した気になれる。

今回は最近チェックしたページを紹介しようと思う。

Record Lock

http://railsguides.jp/active_record_querying.html#%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B

厳密なWebアプリを作るなら、Transactionロックの話は必須だ。ここらはRails本ではなかなか詳細まで入り込めない部分なので、きっとRecord Lock の章は新しい発見がたくさんあることだろう。

N+1問題

http://railsguides.jp/active_record_querying.html#%E9%96%A2%E9%80%A3%E4%BB%98%E3%81%91%E3%82%92%E4%B8%80%E6%8B%AC%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%81%99%E3%82%8B

has_many な関連のモデルをたくさん作っていると、eachの中でsqlを回してしまうようなケースが出てくるかもしれない。そんなSQLの効率に関して気になり出したら、このN+1問題の記事を読むべき時だ。 Eager Load という素晴らしい機能をRailsが提供していることを知るだろう。

ポリモーフィック関連付け

http://railsguides.jp/association_basics.html#%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%95%E3%82%A3%E3%83%83%E3%82%AF%E9%96%A2%E9%80%A3%E4%BB%98%E3%81%91

Table設計に関しては経験がモノを言うと思う。そんな中でポリモーフィック関連付けを知っておけば、あの時あんな面倒なことにはならなかったなぁとか、そういう風な感じでこの便利さを知ることだろう。ただこれの導入も慎重に設計しなければならないことはいうまでもない。

関連付けオプション

http://railsguides.jp/association_basics.html#%E9%96%A2%E9%80%A3%E4%BB%98%E3%81%91%E3%81%AE%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1

has_many で 1の方のリレーションが消えた時、*の方のモデルはどうするか。これはデータ削除の時とか、関連の検索の時とかでつまづくことがある。has_many などの関連付けの持つオプションを知っておくと、より効果的なデータベース操作が可能となる。

部分テンプレート

http://railsguides.jp/action_view_overview.html#%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%80%81%E3%83%91%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%AB%E3%80%81%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88

Viewを扱うなら部分テンプレートは必須の知識だろう。ただ、そんな部分テンプレートも奥が深いことをこの記事を読むことで理解できるだろう。 できる限り部分化していくことが、メンテナンス性を高められる。