From 380834011723e741330978cf2588195bccd2c578 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 1 Oct 2014 23:59:15 +0200 Subject: [PATCH] Revert "Update README to point out 2 caveats with scopes and" This reverts commit cde3e0e6f2bf4dcf65d27f06f202c82ae57ea100. --- README.md | 16 ++-------------- lib/ransack/helpers/form_helper.rb | 5 ++--- lib/ransack/version.rb | 2 +- spec/ransack/helpers/form_helper_spec.rb | 10 +++++----- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 37467b1..0d0beb4 100644 --- a/README.md +++ b/README.md @@ -42,18 +42,12 @@ gem 'ransack', github: 'activerecord-hackery/ransack' The other branches (`rails-4`, `rails-4.1`, and `rails-4.2`) were each used for developing and running Ransack with the latest upcoming version of Rails at the -time. They are smaller and possibly slightly faster because they do not have to +time. They are lighter and somewhat faster-running because they do not have to support previous versions of Rails and Active Record. Once support for that Rails version is merged from the branch into Ransack master, the branch is no longer actively maintained -- unless the open source community submits pull requests to maintain them. You are welcome to do so! -To use one of the branches, for example the `rails-4.1` branch: - -```ruby -gem 'ransack', github: 'activerecord-hackery/ransack', branch: 'rails-4.1' -``` - ## Usage Ransack can be used in one of two modes, simple or advanced. @@ -413,7 +407,7 @@ scope accepts a value: ```ruby class Employee < ActiveRecord::Base - scope :active, ->(boolean = true) { where(active: boolean) } + scope :active, ->(boolean = true) { (where active: boolean) } scope :salary_gt, ->(amount) { where('salary > ?', amount) } # Scopes are just syntactical sugar for class methods, which may also be used: @@ -440,12 +434,6 @@ Employee.search({ active: true, hired_since: '2013-01-01' }) Employee.search({ salary_gt: 100_000 }, { auth_object: current_user }) ``` -Scopes are a recent addition to Ransack and currently have 2 caveats: First, if -you are using a scope with associations, for now you'll need to define the -scope in the parent table model, not in the child model. Second, scopes on -arrays of values are not yet working correctly; in this case, it may be better -to use Ransackers instead. - ### Grouping queries by OR instead of AND The default `AND` grouping can be changed to `OR` by adding `m: 'or'` to the diff --git a/lib/ransack/helpers/form_helper.rb b/lib/ransack/helpers/form_helper.rb index 2db9bf8..461406e 100644 --- a/lib/ransack/helpers/form_helper.rb +++ b/lib/ransack/helpers/form_helper.rb @@ -96,9 +96,8 @@ module Ransack css = ['sort_link', current_dir].compact.join(' ') html_options[:class] = [css, html_options[:class]].compact.join(' ') query_hash = {} - query_hash[search.context.search_key] = search_params.merge( - :s => "#{attr_name} #{new_dir}" - ) + query_hash[search.context.search_key] = search_params + .merge(:s => "#{attr_name} #{new_dir}") options.merge!(query_hash) options_for_url = params.merge options diff --git a/lib/ransack/version.rb b/lib/ransack/version.rb index 2a37df3..9c15d38 100644 --- a/lib/ransack/version.rb +++ b/lib/ransack/version.rb @@ -1,3 +1,3 @@ module Ransack - VERSION = "1.4.2" + VERSION = "1.4.1" end diff --git a/spec/ransack/helpers/form_helper_spec.rb b/spec/ransack/helpers/form_helper_spec.rb index 22dc5a3..198bf46 100644 --- a/spec/ransack/helpers/form_helper_spec.rb +++ b/spec/ransack/helpers/form_helper_spec.rb @@ -71,10 +71,10 @@ module Ransack } end - describe '#sort_link through association table defined as a symbol' do + describe '#sort_link desc through association table defined as a symbol' do subject { @controller.view_context .sort_link( - Person.search({ :sorts => 'comments_body' }), + Person.search({ :sorts => ['comments_body asc'] }), :comments_body, :controller => 'people' ) } @@ -94,8 +94,8 @@ module Ransack describe '#sort_link through association table defined as a string' do subject { @controller.view_context .sort_link( - Person.search({ :sorts => 'comments.body desc' }), - :comments_body, :controller => 'people' + Person.search({ :sorts => ['comments.body desc'] }), + 'comments.body', :controller => 'people' ) } it { @@ -108,7 +108,7 @@ module Ransack ) } it { should match /sort_link desc/ } - it { should match /Body ▼/ } + it { should match /Comments.body ▼/ } end describe '#sort_link works even if search params are a blank string' do