module ActiveAdmin::Resource::ScopeTo

def scope_to(*args, &block)


scope_to :current_user, unless: proc{ current_user.admin? }

or

scope_to :current_user, if: proc{ admin_user_signed_in? }

To conditionally use this scope, you can use conditional procs

current_user.blog_posts.build

will result in the following

scope_to :current_user, association_method: :blog_posts

pass in the association_method as an option.
method to call as the association. If its different, you can
By default Active Admin will use the resource name to build a

current_user.posts.build

Then every time we instantiate and object, it would call

end
scope_to :current_user
ActiveAdmin.register Post do

Eg:

of a method to call.
to the resource. Can either accept a block or a symbol
Scope this controller to some object which has a relation
def scope_to(*args, &block)
  options = args.extract_options!
  method = args.first
  scope_to_config[:method] = block || method
  scope_to_config[:association_method] = options[:association_method]
  scope_to_config[:if] = options[:if]
  scope_to_config[:unless] = options[:unless]
end

def scope_to?(context = nil)

def scope_to?(context = nil)
  return false if scope_to_method.nil?
  return render_in_context(context, scope_to_config[:if]) unless scope_to_config[:if].nil?
  return !render_in_context(context, scope_to_config[:unless]) unless scope_to_config[:unless].nil?
  true
end

def scope_to_association_method

def scope_to_association_method
  scope_to_config[:association_method]
end

def scope_to_config

def scope_to_config
  @scope_to_config ||= {
    method: nil,
    association_method: nil,
    if: nil,
    unless: nil
  }
end

def scope_to_method

def scope_to_method
  scope_to_config[:method]
end