Merge pull request #208 from pdf/reorder
Reorder results to override orders applied up the chain (eg - scopes)
This commit is contained in:
commit
764eecbb20
|
@ -20,7 +20,7 @@ module Ransack
|
|||
viz = Visitor.new
|
||||
relation = @object.where(viz.accept(search.base))
|
||||
if search.sorts.any?
|
||||
relation = relation.except(:order).order(viz.accept(search.sorts))
|
||||
relation = relation.except(:order).reorder(viz.accept(search.sorts))
|
||||
end
|
||||
opts[:distinct] ? relation.select("DISTINCT #{@klass.quoted_table_name}.*") : relation
|
||||
end
|
||||
|
@ -158,4 +158,4 @@ module Ransack
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ module Ransack
|
|||
viz = Visitor.new
|
||||
relation = @object.where(viz.accept(search.base))
|
||||
if search.sorts.any?
|
||||
relation = relation.except(:order).order(viz.accept(search.sorts))
|
||||
relation = relation.except(:order).reorder(viz.accept(search.sorts))
|
||||
end
|
||||
opts[:distinct] ? relation.select("DISTINCT #{@klass.quoted_table_name}.*") : relation
|
||||
end
|
||||
|
|
|
@ -29,7 +29,7 @@ module Ransack
|
|||
viz = Visitor.new
|
||||
relation = @object.where(viz.accept(search.base))
|
||||
if search.sorts.any?
|
||||
relation = relation.except(:order).order(viz.accept(search.sorts))
|
||||
relation = relation.except(:order).reorder(viz.accept(search.sorts))
|
||||
end
|
||||
opts[:distinct] ? relation.uniq : relation
|
||||
end
|
||||
|
@ -37,4 +37,4 @@ module Ransack
|
|||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -217,6 +217,11 @@ module Ransack
|
|||
id_sort.dir.should eq 'desc'
|
||||
name_sort.dir.should eq 'asc'
|
||||
end
|
||||
|
||||
it 'overrides existing sort' do
|
||||
@s.sorts = 'id asc'
|
||||
@s.result.first.id.should eq 1
|
||||
end
|
||||
end
|
||||
|
||||
describe '#method_missing' do
|
||||
|
|
|
@ -6,6 +6,7 @@ ActiveRecord::Base.establish_connection(
|
|||
)
|
||||
|
||||
class Person < ActiveRecord::Base
|
||||
default_scope order('id DESC')
|
||||
belongs_to :parent, :class_name => 'Person', :foreign_key => :parent_id
|
||||
has_many :children, :class_name => 'Person', :foreign_key => :parent_id
|
||||
has_many :articles
|
||||
|
@ -108,4 +109,4 @@ module Schema
|
|||
Comment.make(:body => 'First post!', :article => Article.make(:title => 'Hello, world!'))
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue