From 83636afee015863568dafe21aef5c8187e339a34 Mon Sep 17 00:00:00 2001 From: Andrew Kvalheim Date: Sun, 6 Mar 2022 22:52:04 -0800 Subject: [PATCH] Update UserDatatable for ajax-datatables-rails 1 Resolves failing test `spec/datatables/user_datatable_spec.rb:97`: 1) UserDatatable outputs recordsTotal Failure/Error: filter_records(fetch_records).unscope(:group, :select).count(:all) NotImplementedError: NotImplementedError # ./app/datatables/user_datatable.rb:59:in `records_filtered_count' # ./spec/datatables/user_datatable_spec.rb:95:in `block (3 levels) in ' # ./spec/datatables/user_datatable_spec.rb:98:in `block (3 levels) in ' Details: https://github.com/jbox-web/ajax-datatables-rails/blob/v1.3.1/doc/migrate.md#to-migrate-from-v04x-to-v100 RegistrationDatatable has already been updated in 81853d1ef91c2328e28ea676079428adbba33765. --- app/controllers/admin/users_controller.rb | 2 +- app/datatables/user_datatable.rb | 7 ++++++- spec/datatables/user_datatable_spec.rb | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 6b317a7e..b980540c 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -23,7 +23,7 @@ module Admin respond_to do |format| format.html format.json do - render json: UserDatatable.new(view_context: view_context) + render json: UserDatatable.new({}, view_context: view_context) end end end diff --git a/app/datatables/user_datatable.rb b/app/datatables/user_datatable.rb index cc2ece66..b21f6fea 100644 --- a/app/datatables/user_datatable.rb +++ b/app/datatables/user_datatable.rb @@ -1,12 +1,17 @@ # frozen_string_literal: true -class UserDatatable < AjaxDatatablesRails::Base +class UserDatatable < AjaxDatatablesRails::ActiveRecord extend Forwardable def_delegator :@view, :show_roles def_delegator :@view, :admin_user_path def_delegator :@view, :edit_admin_user_path + def initialize(params, opts = {}) + @view = opts[:view_context] + super + end + def view_columns # Declare strings in this format: ModelName.column_name # or in aliased_join_table.column_name format diff --git a/spec/datatables/user_datatable_spec.rb b/spec/datatables/user_datatable_spec.rb index 89c2b7e3..33d2d4d7 100644 --- a/spec/datatables/user_datatable_spec.rb +++ b/spec/datatables/user_datatable_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe UserDatatable do subject! do - described_class.new(view) + described_class.new({}, view_context: view) end let(:data_cols) do