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

AjaxDatatablesRails::Error::InvalidSearchColumn with 1.3.1 #386

Closed thebravoman closed 3 years ago

thebravoman commented 3 years ago

Hi, after the resolution of https://github.com/jbox-web/ajax-datatables-rails/issues/384 and the resolution of https://github.com/jbox-web/ajax-datatables-rails/issues/383 I decided to migrate to 1.3.1

The following error occurred and I am not sure how it should be resolved. The datatables were previously working

AjaxDatatablesRails::Error::InvalidSearchColumn - Check that column 'actions' exists in view_columns:
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/datatable/column.rb:95:in `validate_settings!'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/datatable/column.rb:19:in `initialize'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/datatable/datatable.rb:43:in `block in columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/datatable/datatable.rb:42:in `columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/datatable/datatable.rb:48:in `column_by'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:79:in `block in connected_columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:78:in `connected_columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:86:in `searchable_columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:92:in `search_columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/orm/active_record.rb:51:in `build_conditions_for_selected_columns'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/orm/active_record.rb:30:in `build_conditions'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/orm/active_record.rb:8:in `filter_records'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:124:in `records_filtered_count'
  ajax-datatables-rails (1.3.1) lib/ajax-datatables-rails/base.rb:58:in `as_json'

In the js I have

   {data: "title"},
      {data: "organization"},
      {data: "roles", orderable: false},
      {data: "participants"},
      {data: "free_spaces", orderable: false},
      {data: "created_at"},
      {data: "end_date"},
      {data: "actions", searchable: false, orderable: false}

in the group_datatable.rb I have


  def data
    records.map do |group|
      {
        title: ...,
        organization: ...,
        roles: ...,
        participants: ...,
        free_spaces: ...,
        created_at: ...,
        end_date: ...,
        actions: ...
      }
    end
  end
n-rodriguez commented 3 years ago

What do you have in def view_columns ?

thebravoman commented 3 years ago

now I see that view_columns does not contain "actions"

  def view_columns
    @view_columns ||= {
      title: ...
      roles: ...
      participants: ...
      free_spaces: ...
      organization: ...
      created_at: ...
      end_date: ...
    }
  end

I guess it should

n-rodriguez commented 3 years ago

I guess it should

Yes, see: https://github.com/jbox-web/ajax-datatables-rails/issues/385