Skip to content

Commit f1bc6ce

Browse files
committed
enable sort by alias
1 parent b627a38 commit f1bc6ce

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

lib/ransack/nodes/sort.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ def valid?
3131
end
3232

3333
def name=(name)
34-
@name = name
35-
context.bind(self, name)
34+
@name = context.ransackable_alias(name) || name
35+
context.bind(self, @name)
3636
end
3737

3838
def dir=(dir)

spec/ransack/search_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,15 @@ def remove_quotes_and_backticks(str)
465465
expect(sort.dir).to eq 'desc'
466466
end
467467

468+
it 'creates sorts based on a single alias' do
469+
@s.sorts = 'daddy desc'
470+
expect(@s.sorts.size).to eq(1)
471+
sort = @s.sorts.first
472+
expect(sort).to be_a Nodes::Sort
473+
expect(sort.name).to eq 'parent_name'
474+
expect(sort.dir).to eq 'desc'
475+
end
476+
468477
it 'creates sorts based on a single attribute and uppercase direction' do
469478
@s.sorts = 'id DESC'
470479
expect(@s.sorts.size).to eq(1)

0 commit comments

Comments
 (0)