class Interview::AssociationListAttribute
Attributes
size[RW]
use[RW]
Protected Instance Methods
build_read(b)
click to toggle source
# File lib/interview/controls/association_list_attribute.rb, line 8 def build_read(b) return if value.nil? assoc_objects = value assoc_count = assoc_objects.count if @use == 'link' b.link caption: "#{@method.humanize} (#{assoc_count})", object: "#{assoc_objects.klass}", filter: assoc_objects.where_values_hash # todo: Überarbeiten else b.text text: assoc_objects.human_ids.join(', ') end end
build_write(b)
click to toggle source
# File lib/interview/controls/association_list_attribute.rb, line 20 def build_write(b) size = @size || 8 if @use == 'multi_select' object = @object || find_attribute!(:object) if object.respond_to? "#{method.singularize}_pool" pool = object.send "#{method.singularize}_pool" else assoc_class = object.class.new.send(@method).build.class pool = assoc_class.all end form_builder.collection_select "#{@method.singularize}_ids", pool, :id, :human_id, {prompt: true}, {class: 'form-control', multiple: true, size: size} # form_builder.collection_select "#{@method.singularize}_ids", Category.all.collect {|x| [x.name, x.id]}, {}, :multiple => true else b << form_builder.text_field("#{@method}_human_ids_string", class: 'form-control') end end