Thin Controllers, Thin AR Models too!

After seeing DestroyAllSoftware screencasts from Gary Bernhardt,
reading this post ,
talking with some people about the issue and based on my personal
experience, I found that they're all right. So I'm on a new project
trying to follow this path in making AR Models just a thin layer to
the DB, specially responsible for db persistance.

The thing is, that I have to move the business logic to "application
models" that will live somewhere else (for example, app/libs). But I'm
really struggling to find a way to do that. Basically, the problem is:
- my OO thinking is too "ActiveRecord Driven". My first thinking was
doing models that wraps in a 1 by 1 scenario an AR model. For example,
for a User AR model, I should have a User "application" model, that
will do the business logic related. This is appearing to be really
wrong to me. There are clear advantages but now I'm free of rails AR
and can create abstract concepts free from the framework bindings.

If you can give me some nice samples (maybe github projects) for me to
see exactly how people are doing this stuff, probably I could force my
mind into thinking about new patterns. Even some textbook would be
nice, should I read the entire Martin Fowler collection? HUHUH

In advance, thanks for your help :wink: Forgive me if the text isn't
perfectly correct, english is a foreign language for me.. :confused:

You can just put the application models in the models folder as
normal. Remember that models do not have to be AR based.


A guy named "M Daubs" sent an e-mail directly to me recommending me to
read the book "Objects on Rails". So I think I should share here: (free html version, USD5 for kindle/pdf drm

In answer to Colin Law,
Thanks for your reply. But this is not really a technical question. I
just want to see some great examples of what I can do when designing
the model layer of my application. I wan't to know where to include
Modules or use Inheritance and so on, but the question is always about
design. But thanks :smiley:

Sorry for missing the "[Rails]" inside the thread subject =/