Validate in controller or use Rails validations?

As I prepare to add validations to my application, I am trying to
decide if it would be better to write validation logic in the update/
create controller methods or use Rails' validation methods. In the
former case, I would check the field values provided by the user
before saving to the database and redirect back to the input URL if a
validation fails. The presence of so many built-in validation methods
tells me there must be a good reason to use them. Yet reading through
the documentation I can't be sure what the benefit is. I appreciate
any guidance from the experts in this forum.

Thanks in advance,
Mark

use them! they encourage proper MVC

(duck behind something solid - I sense a flamewar cometh)

In the former case, I would check the field values provided by the user
before saving to the database and redirect back to the input URL if a
validation fails.

Let's hope that you remember to check every field for valid values in
every controller method you do any DB saves in.... those methods
handling associations are gonna become a spaghetti mess...

reading through
the documentation I can't be sure what the benefit is.

In the simplest terms; What data a model needs is its business. If
other parts of the application logic are validating models, then
you're tightly coupling your classes together, and that's not a very
good OO design.

You could do javascript validation and keep the model validations

MarkB wrote:

As I prepare to add validations to my application, I am trying to
decide if it would be better to write validation logic in the update/
create controller methods or use Rails' validation methods.

Use Rails' validation methods. Logic like that does not belong in the
controller.

[...]

The presence of so many built-in validation methods
tells me there must be a good reason to use them. Yet reading through
the documentation I can't be sure what the benefit is.

The benefit is that they keep your controllers skinny!

Best,

Thanks everyone. Makes sense. Better to build validation logic once
in the model than try to add redundant code across controllers.

I wanted to ask before I started off on a bad path.

Mark