views:

213

answers:

2

Let's say I have a Dog and I want to store if it is trained in Rails. Conventionally, Ruby methods that return booleans have names that end with ?. Should I call the database column trained?, or should I call the database column trained and have a method

class Dog
  def trained?
    trained
  end
end

The latter option seems inefficient, particularly when I have lots of boolean fields.

Or is there some other alternative I'm missing?

+8  A: 

You should call it trained. Define it in your schema with a type of :boolean. You can refer to it as trained? and everything will magically work. So says http://www.ruby-forum.com/topic/60847

Kevin Peterson
perfect answer. thanks.
Peter
amusing that their example is about the 'training' of 'salespeople'...
Peter
A: 

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

Tangential answer: These reserved words are the only page remaining from the old Rails wiki, I believe. But using conflicting names has cost people hours of debugging.

Gene T
I don't see the relevance of this - am I missing something?
Peter