# RecordNeighbors Это простой плагин для Ruby/Ruby on Rails, расширяющий возможность ActiveRecord ### Установка ##### Для Ruby c ActiveRecord ``` gem install 'record_neighbors' ``` ``` # my_app.rb require 'active_record' require 'record_neighbors' ``` ##### Для Ruby on Rails # Gemfile gem 'record_neighbors' ### Список методов * first? * last? * next * previous * all_after * all_before * all_without В качестве параметра методам можно передать название столбца. Выборка будет отсортирована по переданному атрибуту. #### Подробнее о методах "first?" и last? Методы **first?** и **last?** возращают TRUE если элемент является первым/последним в выборке. Пример использования: Post.find(1).first? #=> true Post.find_by(position: 1).first?(:position) #=> true Post.find(10).last? #=> true Post.find_by(position: 1).first?(:position) #=> true #### Подробнее о методах "next" и "previous" Как следует из названия, методы **next** и **previous** возращают следующий/предыдущий объект в выборке. Пример использования: Post.find(1).next #=> # Post.find(5).previous #=> # post.find_by(position: 1).next(:position) #=> # post.find_by(position: 5).previous(:position) #=> # #### Подробнее о методах "all_before и "all_after" Методы **all_before** и **all_after** возвращают коллекцию объектов до/после текущего. Текущий элемент не включается. Post.find(5).all_before Post.find(5).all_after Post.find_by(position: 5).all_before(:position) Post.find_by(position: 5).all_after(:position) #### Подробнее о методах "all_without" Методы **all_without** возвращают коллекцию объектов без текущего элемента. Post.find(5).all_without.pluck(:id) #=> [1, 2, 3, 4, 6, 7, 8, 9, 10]