module Draper::SimpleFormBuilderExtension

Public Instance Methods

association_with_decoration(association, options = {}, &block) click to toggle source
# File lib/draper/simple_form.rb, line 11
def association_with_decoration(association, options = {}, &block)
  reflection = find_association_reflection(association)
  raise "Association #{association.inspect} not found" unless reflection

  options[:collection] ||= options.fetch(:collection) {
    conditions = reflection.options[:conditions]
    conditions = conditions.call if conditions.respond_to?(:call)
    relation = reflection.klass.where(conditions).order(reflection.options[:order])
    relation = relation.decorate if relation.respond_to?(:decorate)
    relation
  }
  association_without_decoration association, options, &block
end