How do I organize my model code?

I have a basic question. I’ve been working with Rails for a couple
months now, and I’ve read the O’Reilly book on it, but once I started
making a basic sized application, it seems like my main model “List” has
waaay too much code, and I want to break it down into classes and
subclasses.

Most of the code in “List” is for HTML parsing, so as a first step, I
would want to make a class “Parser” that is accessible to “List.”

But I have so many questions about how to create this new class:

Where do I put “Parser”?

  • In “List” as another class?
    Is OOP in Rails only centered around database objects?
  • Would I have to make a “Parser” model?
    • Even if there’s no DB table for “Parser”?
      Is there any guide to Rails best programming practices?

Thanks,
David

David D. wrote:

I have a basic question. I’ve been working with Rails for a couple
months now, and I’ve read the O’Reilly book on it, but once I started
making a basic sized application, it seems like my main model “List” has
waaay too much code, and I want to break it down into classes and
subclasses.

Most of the code in “List” is for HTML parsing, so as a first step, I
would want to make a class “Parser” that is accessible to “List.”

But I have so many questions about how to create this new class:

Where do I put “Parser”?

  • In “List” as another class?
    Is OOP in Rails only centered around database objects?
  • Would I have to make a “Parser” model?
    • Even if there’s no DB table for “Parser”?
      Is there any guide to Rails best programming practices?

Thanks,
David

I would suggest starting with reading Object Thinking by David West
(http://www.microsoft.com/learning/en/us/books/6820.aspx) This may help
you to build your objects out.

You can have objects that don’t extend ActiveRecord::Base, just make a
new class, and call it whatever you want. Place that file into the
models folder.

Just stick to conventions and make your code work first, then go back
and refactor. Make lots of tests, and you will be fine.

~Jeremy

Jeremy W. wrote:

I would suggest starting with reading Object Thinking by David West
(http://www.microsoft.com/learning/en/us/books/6820.aspx) This may help
you to build your objects out.

You can have objects that don’t extend ActiveRecord::Base, just make a
new class, and call it whatever you want. Place that file into the
models folder.

Just stick to conventions and make your code work first, then go back
and refactor. Make lots of tests, and you will be fine.

~Jeremy

Thank you!