Class: RademadeAdmin::Model::DataAdapter::ActiveRecord

Inherits:
Object
  • Object
show all
Includes:
RademadeAdmin::Model::DataAdapter
Defined in:
lib/rademade_admin/model/data_adapter/active_record.rb

Instance Method Summary collapse

Methods included from RademadeAdmin::Model::DataAdapter

#has_many, #has_one, #initialize

Instance Method Details

#association_foreign_key(relation) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 15

def association_foreign_key(relation)
  assoc_key = relation.association_foreign_key
  if relation.collection?
    assoc_key += 's'
  end
  assoc_key
end

#fieldsObject



23
24
25
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 23

def fields
  @model.column_types
end

#foreign_key?(field) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
34
35
36
37
38
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 31

def foreign_key?(field)
  if field.is_a? ::ActiveRecord::AttributeMethods::TimeZoneConversion::Type # why another behaviour?
    field_name = field.instance_values['column'].name
  else
    field_name = field.name
  end
  field_name[-3, 3] == '_id'
end

#has_field?(field) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 27

def has_field?(field)
  fields.include? field
end

#reflect_on_association(name) ⇒ Object



11
12
13
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 11

def reflect_on_association(name)
  @model.reflect_on_association(name)
end

#relationsObject



7
8
9
# File 'lib/rademade_admin/model/data_adapter/active_record.rb', line 7

def relations
  @model.reflections
end