Module: ModelInfo::ModelsHelper

Defined in:
app/helpers/model_info/models_helper.rb

Instance Method Summary collapse

Instance Method Details

#associations_hashObject

associations_hash = { [:projects, :has_many]=>“Project”, [:histories, :has_many]=>“History”, [:subordinates, :has_many]=>“Employee” }



45
46
47
48
49
50
51
52
53
54
55
# File 'app/helpers/model_info/models_helper.rb', line 45

def associations_hash
  relationship_hash ={}, active_record_name=[], klass_name=[]
  model_reflection_on_associations.each do |reflection|
    if reflection.options[:polymorphic]
      active_record_name.push(reflection.active_record.name)
    else
      klass_name.push(reflection.klass.name)
    end
  end
  relationship_hash = model_reflection_on_associations.map { |x| [x.name, x.macro] }.zip(active_record_name+klass_name).inject({}) { |h, e| h[e.first] = e.last; h }
end

#model_actions(model_data) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'app/helpers/model_info/models_helper.rb', line 17

def model_actions(model_data)
   :td, class: 'model_action' do
    capture do
      concat link_to 'View', model_show_path(model_class: @model_class, model_object_id: model_data.id, page: @page), class: 'btn btn-info'
      concat link_to 'Edit', model_edit_path(model_class: @model_class, model_object_id: model_data.id), class: 'btn btn-warning'
      concat link_to 'Delete', model_destroy_path(model_class: @model_class, model_object_id: model_data.id), method: :delete, data: {confirm: 'Are you sure?'}, class: 'btn btn-danger'
    end
  end
end

#model_column_namesObject



4
5
6
# File 'app/helpers/model_info/models_helper.rb', line 4

def model_column_names
  @model_class.constantize.column_names
end

#model_column_value(model_data, model_column_name) ⇒ Object



12
13
14
15
# File 'app/helpers/model_info/models_helper.rb', line 12

def model_column_value(model_data, model_column_name)
  column_value = model_data.send(model_column_name.to_sym)
  column_value.class =='String' ? column_value.truncate(14) : column_value.to_s.truncate(14)
end

#model_download_actionsObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/helpers/model_info/models_helper.rb', line 27

def model_download_actions
  if @model_class.constantize.any?
     :div, class: 'model_downloads' do
      capture do
        concat 'Download: '
        concat link_to 'CSV', download_csv_path(model_class: @model_class), format: :csv
        concat ' '
        concat link_to 'JSON', download_json_path(model_class: @model_class), format: :json
      end
    end
  end
end

#model_reflection_on_associationsObject



8
9
10
# File 'app/helpers/model_info/models_helper.rb', line 8

def model_reflection_on_associations
  @model_class.constantize.reflect_on_all_associations
end