class ActiveAdmin::Resource::BelongsTo

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

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

def namespace

def namespace
  @owner.namespace
end

def optional?

def optional?
  @options[:optional]
end

def required?

def required?
  !optional?
end

def resource

def resource
  namespace.resources[@options[:class_name]] ||
    namespace.resources[@target_name.to_s.camelize]
end

def target

Returns the target resource class or raises an exception if it doesn't exist
def target
  resource or raise TargetNotFound.new (@options[:class_name] || @target_name.to_s.camelize), namespace
end

def to_param

def to_param
  (@options[:param] || "#{@target_name}_id").to_sym
end