Sha256: 047a1e6af4ea8ec0646059c948e3fc753d8aa0e14667a17eb55e0fd8ace3c31b
Contents?: true
Size: 1008 Bytes
Versions: 1
Compression:
Stored size: 1008 Bytes
Contents
require_relative "base" require "administrate/page/table" module Administrate module Field class HasMany < Field::Base DEFAULT_LIMIT = 5 def self.permitted_attribute(attribute) { "#{attribute.to_s.singularize}_ids".to_sym => [] } end def associated_table Administrate::Page::Table.new(associated_dashboard) end def attribute_key permitted_attribute.keys.first end def candidate_records Object.const_get(associated_class_name).all end def limit options.fetch(:limit, DEFAULT_LIMIT) end def permitted_attribute self.class.permitted_attribute(attribute) end def resources data.limit(limit) end private def associated_dashboard Object.const_get("#{associated_class_name}Dashboard").new end def associated_class_name options.fetch(:class_name, attribute.to_s.singularize.camelcase) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
administrate-0.0.12 | lib/administrate/fields/has_many.rb |