class ActiveAdmin::Resource::BelongsTo

def initialize(owner, target_name, options = {})

def initialize(owner, target_name, options = {})
  @owner, @target_name, @options = owner, target_name, options
end

def namespace

def namespace
  @owner.namespace
end

def optional?

def optional?
  @options[:optional]
end

def required?

def required?
  !optional?
end

def target

Returns the target resource class or raises an exception if it doesn't exist
def target
  key = @target_name.to_s.camelize
  namespace.resources[key] or raise TargetNotFound.new key, namespace
end