Where do I add my class in RoR

If I want to add my class where do I add it?

as a module or as a controller?

class Contact   def initialize(name, email, message)     @name = name     @email= email     @message= message   end

def name(name)     @name = name   end

  def email(email)     @email= email

  end

  def message(message)     @message= message   end

end

inside in your application under app/model folder. And if it is a module then insert it inside the lib folder.

You should put it under lib/contact.rb if you want to follow the general convention.

You should put it under lib/contact.rb if you want to follow the general convention.

Really? It seems to me that Contact (ActiveRecord subclass or not) would be a legitimate model object in a MVC system. I could see putting some utility classes and stuff that doesn't really have a place in MVC in the lib folder. That seems perfectly reasonable to me. Not everything can be pigeon-holed into any specific design pattern.

So are you saying that any model object that is not subclassing ActiveRecord::Base should not be kept inside the app/models folder? Even when it is obviously a model object managing data, even when that data may not be persisted to a database table.

I'm just looking for some clarification here. Is this just a developer preference on how to organize classes? Or, are their issues surrounding keeping non-ActiveRecord model objects in the /app/models folder?

Pratik Naik wrote:

You should put it under lib/contact.rb if you want to follow the general convention.

...snip...