Forum: Ruby on Rails Handling errors - incorrect value entered in url...

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.
James W. (Guest)
on 2006-04-28 14:59
I have many "edit" actions in my project. If the url is like
http://localhost/project/3/edit and someone enters
http://localhost/project/3333333/edit the edit action will fails because
it cannot find a project with id of 3333333.

To combat this I am adding to every action like edit:

rescue
redirect_to :action => 'index'
flash['errors'] = "That project cannot be edited."

This works, however is there a way to do this globally or do I have to
entered this for every action that could error in this way? I understand
about using routes to narrow down what URL's can be typed, but this does
not escape an error when a value entered is incorrect.

Incidentally, I looked at the Typo code and could not see any error
checking, not a rescue in sight. How do they do it in typo?
Robby R. (Guest)
on 2006-04-28 17:13
(Received via mailing list)
On Apr 28, 2006, at 3:59 AM, James W. wrote:

> flash['errors'] = "That project cannot be edited."
> This works, however is there a way to do this globally or do I have to
> entered this for every action that could error in this way? I
> understand
> about using routes to narrow down what URL's can be typed, but this
> does
> not escape an error when a value entered is incorrect.

You could have a before_filter call a function that tests that the id
in your URL is valid. If you also want to verify that the right
person is attempting to edit it.. you could do that there as well.

Hope that helps.

Cheers,

-Robby


Robby R.
Founder & Executive Director

PLANET ARGON, LLC
Ruby on Rails Development, Consulting & Hosting

www.planetargon.com
www.robbyonrails.com

+1 503 445 2457
+1 877 55 ARGON [toll free]
+1 815 642 4968 [fax]
Michael G. (Guest)
on 2006-04-28 17:19
(Received via mailing list)
James, take a look at this:

http://rubyonrails.org/api/classes/ActionControlle...

Implement the 'rescue_action_in_public' method in your controller (or in
application.rb) to define behavior based on a common exception.  You
could
display a 404, or whatever you want.
Michael G. (Guest)
on 2006-04-28 17:19
(Received via mailing list)
Also check out the wonderful exception_notification plugin for ideas as
to
how you can use this to better suit your needs.
This topic is locked and can not be replied to.