Rails 変数の用法をコメントする

Railsアプリケーションを組んでいると変数の扱い方が分からなくなることがあります。

例えば次のような感じです。

  • この変数のクラスは何だっけ?
  • この変数の初期値は何だっけ?
  • この変数を初期化するにはどうしたらいいんだっけ?

すべてのクラスを自分で作っていればなんとか思い出せますが、Railsのようにライブラリを使っているとどうしても「何だかよくわからない」という状態に陥りやすいと思います。

対策

こういった疑問を毎回調べていると開発効率が落ちるので、一度調べたらコメントで書いておいたりするのもいいと思います。

例えば、次のようなhas_manyコードがあったとして、このimagesのクラスはActiveRecord_Associations_CollectionProxyクラスですけど、見た目じゃ全く分からないし、調べてもまた次の機会には忘れている可能性が高いです。

has_many :images

そんなときは次のような感じで、コメントでクラス名を書いてしまうのが、ベタだけどとてもいいと思います。

# Class Name: ActiveRecord_Associations_CollectionProxy
has_many :images

なお、クラス名を調べるには#.classを使います。

p hogehoge.images.class
Image::ActiveRecord_Associations_CollectionProxy

他には何を忘れそうか

開発をしていてよく忘れるなと気がついたことがあれば、こまめにコメントしておくと開発効率がいい気がします。

例えばつぎのような感じです。

初期値はなんだったかなといつも悩むなら、初期値を調べて書いておきます。

# Default Value: ActiveRecord::Associations::CollectionProxy []
has_many :images

初期化方法をいつも悩むなら、一度調べたら書いておきます。

# How to Initialize: #.delete_all
has_many :images

あまり書きすぎるのもどうかと思いますが、開発の初期段階ではすごく有効だと思います。リリース前に消してもいいですしね。