クラスの階層
練習も兼ねて簡単なフレームワークを作っていて以下のように書いたらエラーになった。
lib/myapp/controller/search/index.rb
class Search::Index < Controller … end
uninitialized constant Object::Search (NameError)
まだまだよく理解しきっていないのだけれど、クラスというのは定数なんだな。
だから文字列からconst_get(classname)でクラス名の定数を取得できたりする、と。
それを踏まえてエラーをよく見ると、トップレベルのObjectクラスのSearchクラスなんてなくて定数ないんですけどと言われているんだろう。
というわけで、Searchクラスをつくった上でその中にIndexクラスを作る。
class Search class Search::Index … end end
とりあえずこれで動いた。
Ruby楽しい。