jbox-web / ajax-datatables-rails

A wrapper around DataTable's ajax methods that allow synchronization with server-side pagination in a Rails app
MIT License
584 stars 228 forks source link

Upgrading Rails to version Ruby 3.1.2 breaks ajax-datatables-rails #410

Open theasteve opened 2 years ago

theasteve commented 2 years ago

I'm currently trying to upgrade a rails application to move from ruby-3.0.1 to ruby-3.1.2. Im currently using ajax-datatables-rails version ajax-datatables-rails (1.3.1). When I upgrade the Ruby version, I encounter the following error:

$ rails s
=> Booting Puma
=> Rails 6.1.6 application starting in development 
=> Run `bin/rails server --help` for more startup options
Exiting
/Users/stevenaguilar/portal/config/initializers/ajax_datatables_rails.rb:1:in `<main>': undefined method `configure' for AjaxDatatablesRails:Module (NoMethodError)

AjaxDatatablesRails.configure do |config|

here is the full stack trace:

$ rails s
=> Booting Puma
=> Rails 6.1.6 application starting in development 
=> Run `bin/rails server --help` for more startup options
Exiting
/Users/stevenaguilar/portal/config/initializers/ajax_datatables_rails.rb:1:in `<main>': undefined method `configure' for AjaxDatatablesRails:Module (NoMethodError)

AjaxDatatablesRails.configure do |config|
                   ^^^^^^^^^^
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:39:in `load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:326:in `block in load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:299:in `load_dependency'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:326:in `load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/engine.rb:681:in `block in load_config_initializer'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/notifications.rb:205:in `instrument'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/engine.rb:680:in `load_config_initializer'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/engine.rb:633:in `each'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/engine.rb:633:in `block in <class:Engine>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:32:in `instance_exec'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:32:in `run'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:61:in `block in run_initializers'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:228:in `block in tsort_each'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:50:in `each'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:50:in `tsort_each_child'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:415:in `call'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:415:in `each_strongly_connected_component_from'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:347:in `each'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:347:in `call'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:347:in `each_strongly_connected_component'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:226:in `tsort_each'
    from /Users/stevenaguilar/.rvm/rubies/ruby-3.1.2/lib/ruby/3.1.0/tsort.rb:205:in `tsort_each'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/initializable.rb:60:in `run_initializers'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/application.rb:391:in `initialize!'
    from /Users/stevenaguilar/portal/config/environment.rb:5:in `<main>'
    from config.ru:3:in `require_relative'
    from config.ru:3:in `block in <main>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/builder.rb:116:in `eval'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/builder.rb:116:in `new_from_string'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/builder.rb:105:in `load_file'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/builder.rb:66:in `parse_file'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/server.rb:349:in `build_app_and_options_from_config'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/server.rb:249:in `app'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/rack-2.2.3.1/lib/rack/server.rb:422:in `wrapped_app'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/commands/server/server_command.rb:77:in `log_to_stdout'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/commands/server/server_command.rb:37:in `start'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/commands/server/server_command.rb:144:in `block in perform'
    from <internal:kernel>:90:in `tap'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/commands/server/server_command.rb:135:in `perform'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/command/base.rb:69:in `perform'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/command.rb:48:in `invoke'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/railties-6.1.6/lib/rails/commands.rb:18:in `<main>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:332:in `block in require'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:299:in `load_dependency'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/activesupport-6.1.6/lib/active_support/dependencies.rb:332:in `require'
    from /Users/stevenaguilar/portal/bin/rails:15:in `<top (required)>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/client/rails.rb:30:in `load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/client/rails.rb:30:in `call'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/client/command.rb:7:in `call'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/client.rb:30:in `run'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/bin/spring:49:in `<top (required)>'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/binstub.rb:11:in `load'
    from /Users/stevenaguilar/.rvm/gems/ruby-3.1.2/gems/spring-4.0.0/lib/spring/binstub.rb:11:in `<top (required)>'
    from /Users/stevenaguilar/portal/bin/spring:15:in `require'
    from /Users/stevenaguilar/portal/bin/spring:15:in `<top (required)>'
    from bin/rails:3:in `load'
    from bin/rails:3:in `<main>'
n-rodriguez commented 2 years ago

https://github.com/jbox-web/ajax-datatables-rails/blob/master/doc/migrate.md#to-migrate-from-v1x-to-v130

theasteve commented 2 years ago

When following the docs, im encountering this error

AjaxDatatablesRails::Error::InvalidSearchColumn:
Check that column 'edit' exists in view_columns
     # ------------------
     # --- Caused by: ---
     # Selenium::WebDriver::Error::UnexpectedAlertOpenError:
     #   unexpected alert open: {Alert text : DataTables warning: table id=property-units-table - Ajax error. For more information about this error, please see http://datatables.net/tn/7}
     #     (Session info: headless chrome=103.0.5060.53)
     #   0   chromedriver                        0x0000000100ffa079 chromedriver + 4444281

Do you happen to know what this issue is?