Module: Prioritize::PriorityAfter
- Defined in:
- lib/prioritize.rb
Overview
Модуль которым расширяем Модели использовавшие в себе метод prioritize_column(…)
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #priority_after(prev_id) ⇒ Object
-
#priority_callback ⇒ Object
При заполннном поле priority_prev запустим запрос на обновление сортировочного поля.
Class Method Details
.included(base) ⇒ Object
40 41 42 43 44 45 46 47 48 49 |
# File 'lib/prioritize.rb', line 40 def self.included(base) base.extend ClassMethods # К экземпляру класса добавим поле, в которое необходимо записать значение # если необходимо выполнить сортировку. # После обновления экземпляра если в поле установлено значение - сработает # поведение. attr_accessor :priority_prev # Навесим поведение модели. base.after_update :priority_callback end |
Instance Method Details
#priority_after(prev_id) ⇒ Object
63 64 65 |
# File 'lib/prioritize.rb', line 63 def priority_after(prev_id) self.class.priority_after prev_id, id end |
#priority_callback ⇒ Object
При заполннном поле priority_prev запустим запрос на обновление сортировочного поля. В данном поле должен быть записан идентификатор элемента ЗА которым должен слеовать перемещаемый элемент. Если такого элемента нет (тоесть перемещаемый элемент переносится в начало списка), тогда в поле необходимо записать строку ‘^’.
56 57 58 59 60 61 |
# File 'lib/prioritize.rb', line 56 def priority_callback if priority_prev.present? prev_id = priority_prev == '^' ? nil : priority_prev priority_after prev_id end end |