ActiveRecord extension to find out near by (proximal) records (previous and next) from the ActiveRelation scopes (using AREL).
The benefit of this gem, it can take any scope, and it does subquery for taking previous and next records.
- mysql2
- postgresql
- Ruby: 1.9.3, 2.0.0, 2.1.1
- ActiveRecord: 3.2, 4.0, 4.1
Add this line to your application's Gemfile:
gem 'proximal_records'
And then execute:
$ bundle
Or install it yourself as:
$ gem install proximal_records
Include ProximalRecords module into your ActiveRecord model and use it with proximal_records method, that returns previous and next records in the array. If previous or next records didn't found, then returns nil.
class Article < ActiveRecord::Base
include ProximalRecords
end
scope = Article.title_like('proximal').order('created_at DESC, title ASC')
current_record = Article.find(20) # it's part of the scope
p, n = current_record.proximal_records(scope)After that you will get previous and next records, that are proximal (near by) records of current_record.
- Fork it ( http://github.com/dmitry/proximal_records/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request