ActiveAdmin with friendly id

activeadmin, ruby, ruby-on-rails, ruby-on-rails-4, ruby-on-rails-5

Solution

There are cases, when application has quit a few resources, hence in order to keep it DRY there is a nice solution requiring few lines of code for whole application - simply override activeadmin's resource controller.

Create `config/initializers/active_admin_monkey_patching.rb` file with the following content:

ActiveAdmin::ResourceController.class_eval do
  def find_resource
    finder = resource_class.is_a?(FriendlyId) ? :slug : :id
    scoped_collection.find_by(finder => params[:id])
  end
end

Do not forget to restart the server.

Problem

I am using `friendly_id` in my rails 4 application with `slug`. Now I am using active_admin gem. Problem: When I click on show link from active admin for `Group` resource, It is throwing the following exception: ``` ActiveRecord::RecordNotFound at /admin/groups/username20-s-group-1 ``` I guess, I need to override some of the `active_admin` default functions?

Original source