Here's my tuppence worth having been dumped into this situation myself many times previously.
I would refactor as I go.
The overriding factor is to tackle what is relevant and only what is relevant.
You need to start small, and think small.
Take one view or report at a time and deal with just that one small area.
This approach stops you getting carried away and means that you get to understand that area and what it is doing (or supposed to be doing) really quickly. It means you get work delivered on time and to spec and in budget and you get to rewrite the whole app little by little without needing to understand the whole application in one big chunk
So how to refactor that one view
This is what I would do
Determine what that view's purpose is, what it updates and what it's business logic is.
Once you understand that you can write a test (and a spec if you use cucumber or the likes).
This is REALLY important as it helps to test your full knowledge of that view as well as ensures that the code does what it's supposed to do.
Now you have a test (and spec?) you can start refactoring.
set up a restfull route, move a tiny bit of business logic into the model, add a new table view that represents the data as it should be or write a finder or named scope. whatever it takes to get just that one view working the way it should work, passing all tests and not interfering with any of the other parts of the app.
Once you have a whole controller, model and views refactored with using views in the database rather than tables you can consider creating a new table the way it should be and switch from using views to using the table.
Obviously refactoring the database is going to be a bit tricky and that approach may not be practical but once you have the tests in place it will become easier to do the refactoring of the database with confidence that you will know if you break something pretty quickly.
What I'm trying to say is that it is far easier and more effective to become familiar with small sections than it is to become familiar with all the quirks of a large app and you will no doubt be being asked to produce new code and releases pretty quickly so those areas that need the attention are probably the best to start with.
hope that helps
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)