class SimpleForm::Inputs::AjaxSelect2Input

Public Instance Methods

input_html_options() click to toggle source
Calls superclass method
# File lib/simple_form/inputs/ajax_select2_input.rb, line 4
def input_html_options
  url_params = {}
  url_params[:class_name] = options[:search_class] if options[:search_class].present?
  url_params[:search_method] = options[:search_method] if options[:search_method].present?
  url_params[:default_class_name] = options[:default_class_name] if options[:default_class_name].present?
  url_params[:default_text_column] = options[:default_text_column] if options[:default_text_column].present?
  url_params[:default_id_column] = options[:default_id_column] if options[:default_id_column].present?
  url_params[:select2_options] = options[:select2_options] if options[:select2_options].present?
  href = template.select2_autocompletes_path(url_params)
  input_options = super
  input_options[:data] = input_options[:data].to_h.merge({
      s2_href: href,
      s2_options: url_params[:select2_options].to_h.merge(multiple: multiple?)
  })
  css_classes = [input_options[:class], 'auto-ajax-select2', 'input-hol']
  if multiple?
    css_classes << 'multiple'
  end
  input_options[:class] = css_classes.compact
  input_options[:value] = value
  input_options
end
multiple?() click to toggle source
# File lib/simple_form/inputs/ajax_select2_input.rb, line 27
def multiple?
  multiple_by_options? || multiple_by_association?
end
multiple_by_association?() click to toggle source
# File lib/simple_form/inputs/ajax_select2_input.rb, line 37
def multiple_by_association?
  reflection && [ :has_many, :has_and_belongs_to_many ].include?(reflection.macro)
end
multiple_by_options?() click to toggle source
# File lib/simple_form/inputs/ajax_select2_input.rb, line 41
def multiple_by_options?
  options[:multiple] || (options[:input_html] && options[:input_html][:multiple])
end
value() click to toggle source
# File lib/simple_form/inputs/ajax_select2_input.rb, line 31
def value
  val = object.send(attribute_name)
  val = val.join(',') if val.is_a?(Array)
  val
end