How do I show unscoped models in Rails Admin?

后端 未结 4 1067
礼貌的吻别
礼貌的吻别 2020-12-18 04:45

I needed this myself, so here it is QA-style:

By default, Rails Admin shows a model\'s default_scope. How do I get it to show every model completely unscoped?

4条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-18 04:59

    Add this monkey patch to your rails admin initializer:

    ### Monkey pactch for unscoped records in admin panel
    require 'rails_admin/main_controller'
    module RailsAdmin
      class MainController
        alias_method :old_get_collection, :get_collection
        alias_method :old_get_object, :get_object
    
        def get_collection(model_config, scope, pagination)
          old_get_collection(model_config, model_config.abstract_model.model.unscoped, pagination)
        end
    
        def get_object
          raise RailsAdmin::ObjectNotFound unless (object = @abstract_model.model.unscoped.find(params[:id]))
          @object = RailsAdmin::Adapters::ActiveRecord::AbstractObject.new(object)
        end
      end
    end
    

    Taken from https://github.com/sferik/rails_admin/issues/353.

提交回复
热议问题