No commit activity in last 3 years
No release in over 3 years
activerecord-autoscope automatically add useful scopes
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.0
~> 10.0
~> 3.0

Runtime

 Project Readme

ActiveRecord::AutoScope

This gem automatically defines scope methods which we often implement

Installation

Add this line to your application's Gemfile:

gem 'activerecord-autoscope'

And then execute:

$ bundle

Or install it yourself as:

$ gem install activerecord-autoscope

Usage

This gem automatically defines these scope methods without configuration

These APIs are similar as Ransack's one, but these scope methods are simple implementations.

Please check its implementation if you're interested in.

Type Scope method Description Notes
All #{col}_eq(val) equal
All #{col}_not_eq(val) not equal
All #{col}_is(val) equal
All #{col}_is_not(val) not equal
All #{col}_null is null
All #{col}_not_null is not null
All #{col}_present not null and not empty SQL: col IS NOT NULL AND col != ''
All #{col}_blank null or empty SQL: col IS NULL OR col = ''
All #{col}_asc ascending order
All #{col}_desc descending order
:integer #{col}_gt(val) greater than
:integer #{col}_gteq(val) greater than or equal
:integer #{col}_lt(val) less than
:integer #{col}_lteq(val) less than or equal
:string, :text #{col}_start(val) starts with SQL: col LIKE 'value%'
:string, :text #{col}_not_start(val) does not start with
:string, :text #{col}_end(val) ends with SQL: col LIKE '%value'
:string, :text #{col}_not_end(val) does not end with
:string, :text #{col}_cont(val) contains SQL: col LIKE '%value%'
:string, :text #{col}_not_cont(val) does not contain
:date, :datetime #{col}_after(val) after
:date, :datetime #{col}_on_or_after(val) on or after
:date, :datetime #{col}_before(val) before
:date, :datetime #{col}_on_or_before(val) on or before
:date, :datetime #{col}_between(range) between
:boolean #{col} true SQL: col IS true
:boolean not_#{col} false

Manually settings

This gem provides automatically each scopes with method_missing If you don't any configuration, you can use it. But if you want to define these scope methods manually, you have to add this initializer file:

# config/initializers/activerecord_autoscope.rb
ActiveRecord::AutoScope.config.auto_define_scopes = false

Then you have to enable inside each models:

class User < ApplicationRecord
  enable_auto_scopes!
end

License

MIT License