views:

386

answers:

3

I tried creating a model called "class" (as in a graduating class of students), and encountered all kinds of problems. What are some other words or class names to avoid in Rails?

Some links I've found:
http://juicebar.wordpress.com/2007/05/30/reserved-words-in-rails/
http://railsforum.com/viewtopic.php?id=22242

+1  A: 

You've got most of them there. Obviously, you also need to avoid the Ruby keywords:

alias and BEGIN begin break case class def defined
do else elsif END end ensure false for if
in module next nil not or redo rescue retry
return self super then true undef unless until when
while yield

(from http://spec.ruby-doc.org/wiki/Reserved_Words).

Also, don't name a model Transaction (but the generator warns about that!).

Ben Alpert
+5  A: 

This page has a very long list of words not to use:

http://wiki.rubyonrails.org/rails/pages/ReservedWords

Because 'class' comes up very commonly as a name with metaprogamming, I think the accepted ruby alternative is 'klass'. This is obviously a different context from your graduating class situation, but maybe still helpful.

Angela
A: 

Class is a built-in ruby class. It is what classes is an instance of.

class Foo
end

puts Foo.class
# => Class

Overriding that blows up the entire object structure in Ruby.

August Lilleaas