class Administrate::Field::OrderedHasMany

Constants

VERSION

Public Class Methods

permitted_attribute(attr, _options = nil) click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 7
def self.permitted_attribute(attr, _options = nil)
  {attr => []}
end

Public Instance Methods

associated_class() click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 22
def associated_class
  class_name = self.attribute.match(/ordered_(.+)_ids/)[1].camelcase
  begin
    class_name.constantize
  rescue
    raise "#{class_name} is not a valid association!"
  end
end
association_name() click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 18
def association_name
  self.attribute.match(/ordered_(.+)_ids/)[1].humanize.pluralize
end
selectable_options() click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 31
def selectable_options
  associated_class.all
end
to_s() click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 11
def to_s
  return "-" unless data
  associated_class.find(data).map do |associated_instance|
    associated_instance.try(:name) || associated_instance.to_s
  end.join(", ")
end
values() click to toggle source
# File lib/administrate/field/ordered_has_many.rb, line 35
def values
  return [] unless data
  if data.is_a?(Array) 
    data
  else 
    raise "#{self.attribute} must be an array of #{associated_class} ID's, instead it was #{data.inspect}"
  end
end