Handle ActiveRecord::RecordNotFound More Beautifully

32 sec read

Most of us usually handle the Active Record Not Found error in ApplicationController and then redirect it to a generic view page. I found a different and more efficient way to handle it.

Intsead of handling the error at ApplicationController level handle it at your Model Controller. Lets you have a controller called PostsController for the model post, then add the line rescue_from ActiveRecord::RecordNotFound, with: :handle_record_not_found in it and define the method implementation in your controller.
[source language=”ruby”]
class PostsController < ApplicationController before_action goes_here rescue_from ActiveRecord::RecordNotFound, with: :handle_record_not_found def index end def show end ... def handle_record_not_found # Send it to the view that is specific for Post not found render :not_found end end [/source] The key benefit here is you can have a specific view for every Model you have and you can show customised not found message.

Related posts:

My Testing Experience with Healthcare Project

Hi Folks, I am working on a healthcare related web application. I would like to share few interesting things that I came across while...
Ashwin Sundarabaskar
5 min read

Fix for Net::OpenTimeout: execution expired When on AWS with…

If you happen to see the error “Net::OpenTimeout: execution expired” and if it originating from /home/ubuntu/.rvm/rubies/ruby-x.x.x/lib/ruby/x.x.x/net/smtp.rb and if you are running your server on...
Praveen Kumar
15 sec read

Leave a Reply

Your email address will not be published. Required fields are marked *