Module: ResourceRow::AssociationExtensions

Extended by:
ActiveSupport::Concern
Defined in:
app/extensions/concerns/resource_row/association_extensions.rb

Instance Method Summary collapse

Instance Method Details

#association(association_name, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/extensions/concerns/resource_row/association_extensions.rb', line 7

def association(association_name, options = {})
  options.reverse_merge!(label_method: :name)
  label_method = options.delete(:label_method)
  associated = resource.send(association_name)

  label = associated.respond_to?(label_method) ? associated.send(label_method) : nil

  if label.present?
    link_method_name = "#{associated.class.name.demodulize.underscore}_path"
    column(association_name) { |_resource| h.link_to(label, h.send(link_method_name, associated)) }
  else
    column(association_name)
  end
end