Skip to content

Commit b541799

Browse files
authored
Merge pull request #418 from dmorehouse/master
Fix server-side out of order ajax responses
2 parents eae8844 + 582238e commit b541799

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

lib/ajax-datatables-rails/base.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,13 @@ def additional_data
7373

7474
# JSON structure sent to jQuery DataTables
7575
def as_json(*)
76+
draw_resp = (params[:draw].present?) ? { draw: params[:draw].to_i } : { }
77+
7678
{
7779
recordsTotal: records_total_count,
7880
recordsFiltered: records_filtered_count,
7981
data: sanitize_data(data),
80-
}.merge(additional_data)
82+
}.merge(draw_resp).merge(additional_data)
8183
end
8284

8385
# User helper methods

spec/ajax-datatables-rails/base_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ def paginate_records(records)
181181
data = datatable.as_json
182182
expect(data[:recordsTotal]).to eq 5
183183
expect(data[:recordsFiltered]).to eq 5
184+
expect(data[:draw]).to eq 1
184185
expect(data[:data]).to be_a(Array)
185186
expect(data[:data].size).to eq 5
186187
end
@@ -192,6 +193,7 @@ def paginate_records(records)
192193
data = datatable.as_json
193194
expect(data[:recordsTotal]).to eq 5
194195
expect(data[:recordsFiltered]).to eq 5
196+
expect(data[:draw]).to eq 1
195197
expect(data[:data]).to be_a(Array)
196198
expect(data[:data].size).to eq 5
197199
expect(data[:foo]).to eq 'bar'

0 commit comments

Comments
 (0)