Forum: Ruby on Rails How do I organize my model code?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
David D. (Guest)
on 2009-03-10 17:25
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
Jeremy W. (Guest)
on 2009-03-10 21:18
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
David D. (Guest)
on 2009-03-11 19:22
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!
This topic is locked and can not be replied to.