Skip to content

Commit a70ac6f

Browse files
committed
Merge pull request #44 from Masa331/array_query_parameters
Return array query parameters same as received
2 parents df06353 + 6366131 commit a70ac6f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

lib/grape/pagination.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def paginate(collection)
1515
pages = ApiPagination.pages_from(collection)
1616

1717
pages.each do |k, v|
18-
old_params = Rack::Utils.parse_query(request.query_string)
18+
old_params = Rack::Utils.parse_nested_query(request.query_string)
1919
new_params = old_params.merge('page' => v)
2020
links << %(<#{url}?#{new_params.to_param}>; rel="#{k}")
2121
end

spec/grape_spec.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,5 +99,16 @@
9999
expect(per_page).to eq(10)
100100
end
101101
end
102+
103+
context 'with query string including array parameter' do
104+
before do
105+
get '/numbers', { count: 100, parity: ['odd', 'even']}
106+
end
107+
108+
it 'returns links with with same received parameters' do
109+
expect(links).to include('<http://example.org/numbers?count=100&page=10&parity%5B%5D=odd&parity%5B%5D=even>; rel="last"')
110+
expect(links).to include('<http://example.org/numbers?count=100&page=2&parity%5B%5D=odd&parity%5B%5D=even>; rel="next"')
111+
end
112+
end
102113
end
103114
end

0 commit comments

Comments
 (0)