From: Xavier Noria Date: 2008-05-23T03:44:13+09:00 Subject: Re: Prevent ruby constant variables from changing? Class names are strings. The name of an anonymous class is an empty string. The first time a class is assigned to a constant gets its name from the constant identifier. That happens automatically behind the scenes the first time you say class Foo. Once a class gets its name the container where the class object lives is irrelevant, the name is set in stone. Normally constant User holds a class named "User", but technically it could store a class named "Project". Apart from those rules, constants and class objects are kind of decoupled because they are just basic pieces of Ruby put together.