i.e. take some of the logic out of my controllers and views, and stick it in my models.
What I seemed to have found out is, nothing works.
Course it works!
ActiveRecords don't seem to like being anything other than an interface to a database table
Now that is just about right!
In a 3 tier application it is argued that the middle tier and the database tier have the responsibility for ALL the data and data integrity.
In Rails MVC architecture the model layer is the middle tier.
If you have functions and methods that do stuff with data then put in the model! It really is that simple. You can of course (and probably should) put stuff in the database.
Controllers are essentially a collection of views. And as little logic as possible should be placed in views.
Well, perhaps you would find this an interesting read.
As a rule of thumb, when considering placing logic in views ask yourself how you would use that logic from a rake task.
Another rule of thumb
If you need to access the same functionality elsewhere then it belongs in the model.
Change the way you think and the way you develop. Take the TBDD approach, applies to all good languages, not just RoR, You will quickly understand, when writing your tests how the jigsaw pieces of your application fit together.
It's a very OO approach that more than a few developers just don't get, even some of those that think they do, really just don't get it.
With the right approach you'll develop your code to be a lot more stable, readable and bug free in far shorter time scales than traditional development approaches, and time is money, so ultimately that is the reason why.
What you want and what you need are too often not the same thing!
When your head is hurting from trying to solve a problem, stop standing on it. When you are the right way up you will see the problem differently and you just might find the solution.
(Quote by me 15th July 2009)