Sha256: 5e6fd88da731c314ddf229ad67064a436852492985af8734eb3e738a4574aaa7
Contents?: true
Size: 1.43 KB
Versions: 19
Compression:
Stored size: 1.43 KB
Contents
module AdminIt module MongoidData # module Field def self.included(base) base.class_eval do class << self attr_accessor :assoc end class_attr_reader :assoc end end protected def read_value(entity) value = entity.send(name) if type == :relation if assoc.collection? value.nil? || value.empty? ? [] : value.map(&:id).to_json else value.nil? ? nil : value.id end else value end end def show_value(entity) value = entity.send(name) if type == :relation resource = AdminIt.resources.values.find do |r| r.entity_class == assoc.klass end return I18n.t('admin_it.relation.no_resource') if resource.nil? context = resource.contexts.find { |c| c <= ShowContext } return I18n.t('admin_it.relation.no_context') if context.nil? if assoc.collection? if value.count == 0 I18n.t('admin_it.collection.no_data') else v = context.read(value.first) v.nil? ? '' : context.read(value.first) + ' ...' end else context.read(value) end else value end end def write_value(entity, value) entity.send("#{name}=", value) end end end end
Version data entries
19 entries across 19 versions & 1 rubygems