Module: AbAdmin::Concerns::Fileuploads::ClassMethods

Defined in:
lib/ab_admin/concerns/fileuploads.rb

Instance Method Summary collapse

Instance Method Details

#fileupload_find(method, guid) ⇒ Object

Find asset(s) by guid



40
41
42
43
# File 'lib/ab_admin/concerns/fileuploads.rb', line 40

def fileupload_find(method, guid)
  query = fileupload_scope(method, guid)
  fileupload_multiple?(method) ? query.to_a : query.first
end

#fileupload_klass(method) ⇒ Object

Find class by reflection



52
53
54
# File 'lib/ab_admin/concerns/fileuploads.rb', line 52

def fileupload_klass(method)
  reflect_on_association(method.to_sym).klass
end

#fileupload_multiple?(method) ⇒ Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/ab_admin/concerns/fileuploads.rb', line 56

def fileupload_multiple?(method)
  reflect_on_association(method.to_sym).try(:collection?)
end

#fileupload_scope(method, guid) ⇒ Object



45
46
47
48
49
# File 'lib/ab_admin/concerns/fileuploads.rb', line 45

def fileupload_scope(method, guid)
  assoc = reflect_on_association(method.to_sym)
  assoc_scope = assoc.scope ? assoc.klass.instance_exec(&assoc.scope) : assoc.klass
  assoc_scope.where(guid: guid, assetable_type: base_class.name.to_s)
end

#fileupload_update(record_id, guid, method) ⇒ Object

Update reflection klass by guid



35
36
37
# File 'lib/ab_admin/concerns/fileuploads.rb', line 35

def fileupload_update(record_id, guid, method)
  fileupload_scope(method, guid).update_all(assetable_id: record_id, guid: nil)
end