I want to be able to display 404 page from a controller when a record
in the database can not be found. I am using Rails 3 at the moment. I
tried to find how to do this on guides.rails.info with no luck. Can
anybody recommend the best approach to do this?
Thanks heaps for your help and assistance. I really appreciate it.
I want to be able to display 404 page from a controller when a record
in the database can not be found. I am using Rails 3 at the moment. I
tried to find how to do this on guides.rails.info with no luck. Can
anybody recommend the best approach to do this?
Have you tried raising ActiveRecord::NotFound in the controller? Or just let
the model raise it.
Jeffrey
P.S. not actually tried this in Rails 3, this works for me in Rails 1.x and
2.x.
By default active_record will raise ActiveRecord::NotFound exception
when a record can not be found in the database. And when this occurs,
it will display the 404 page from the public folder. Unfortunately
this hasn't been working for me in production. After observing the
problems, it seems it only occurs when running Rails 3 with passenger.
I have tried the same test case but running Rails on thin and
everything works as it should be.
Does anybody have this kind of experience like this? Thanks very much
in advance for sharing.
I can't raise ActiveRecord::NotFound as that's not the ORM I am using,
so it is not even require'd in my project. Rendering 404.html should
work, but how do I halt the action additionally? raising an Exception
will prevent the rest of the action from executing, but rendering
won't afaik.