PerlerのRuby日記

Rubyとか

クラスの階層

練習も兼ねて簡単なフレームワークを作っていて以下のように書いたらエラーになった。

lib/myapp/controller/search/index.rb
class Search::Index < Controllerend
uninitialized constant Object::Search (NameError)

まだまだよく理解しきっていないのだけれど、クラスというのは定数なんだな。

だから文字列からconst_get(classname)でクラス名の定数を取得できたりする、と。

それを踏まえてエラーをよく見ると、トップレベルのObjectクラスのSearchクラスなんてなくて定数ないんですけどと言われているんだろう。

というわけで、Searchクラスをつくった上でその中にIndexクラスを作る。


class Search
  class Search::Indexend
end

とりあえずこれで動いた。

Ruby楽しい。