Recently I had call to want to run skip_after_filter on all Rails Admin Controllers. My specific use case was we are using a gem from Intercom which displays their chat box on each page, and I didn’t want it appearing inside of our admin views.

I am not the only one

Wanting to hide intercom from rails_admin is going to be a pretty niche thing to want to do, so I started searching for the more general case of adding anything with a skip_**_filter to Rails Admin.

After some searching I was not the only one looking at how we can do this, unfortunately although there were plenty of questions, there were few answers.

I think there are two reasons why there aren’t many answers to these questions.

  • This isn’t a particularly common thing to need to do
  • The solution isn’t a pretty one

Can you say, Monkey Patch?

Yup, unfortunately we need to monkey patch (something I hate doing) Rails Admin in order to ensure that we can set skip_after_filter.

RailsAdmin::ApplicationController.class_eval do
  	skip_after_filter :intercom_rails_auto_include
end

I decided to do this inside config/initializers/rails_admin.rb because I know at the point of setting configutations we must have access to RailsAdmin.

This isn’t pretty, but it works!