Module: Coalla::PageSlider
- Defined in:
- lib/coalla/orm/page_slider.rb
Instance Method Summary collapse
Instance Method Details
#slider(collection_name, options = {}) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/coalla/orm/page_slider.rb', line 3 def (collection_name, = {}) class_name = .delete(:class_name) || 'SliderImage' = (collection_name) has_many collection_name, -> { where(slider_type: ).order(:position) }, foreign_key: :container_slider_id, dependent: :destroy, class_name: class_name accepts_nested_attributes_for collection_name, allow_destroy: true define_method "sorted_#{collection_name}" do send(collection_name).sort_by(&:position) end sortable_association(collection_name.to_sym) end |
#slider_type(collection_name) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/coalla/orm/page_slider.rb', line 14 def (collection_name) # Workaround for STI - save parent class name for using in subclass @@slider_metadata ||= [] self.ancestors.each do |klazz| = "#{klazz.name && klazz.name.sub('::', '__')}_#{collection_name}" return if @@slider_metadata.include? break if klazz == ActiveRecord::Base end = "#{self.name && self.name.sub('::', '__')}_#{collection_name}" @@slider_metadata << end |