Ruby のクラス変数とクラスのインスタンス変数の違いの覚書。 クラス変数 Ruby で @@変数名 で変数を定義するとクラス変数として定義されます。 また、この変数は継承したクラスでも参照する事ができます。 class X @@class_variable = "hoge" end class Y < X pp @@class_variable # => "hoge" end クラスのインスタンス変数 Ruby ではクラスもインスタンスオブジェクトなのでインスタンス変数を定義する事ができます。 これは『継承したクラス』では参照することはできません。 class X @instance_variable = "hoge" end class Y < X pp @instance_variable # => nil end クラスのインスタンス変数の方が参照するスコープが小さいので意図しない