This will return all the data that DataTables expects including all the relevant rows from the database.
# File app/datatables/fixxperts_datatable.rb, line 13 def as_json(options = {}) conditions = if params[:sSearch].present? ["LOWER(name) LIKE :q", q: "%#{params[:sSearch].downcase}%"] else {} end fixxperts = params[:nonsearchable_only].present? ? Fixxpert.non_searchable : Fixxpert.all as_datatable(fixxperts, conditions) end
This fetches the correct page of data in the correct order.
# File app/datatables/fixxperts_datatable.rb, line 25 def data_hash(fixxpert) { id: fixxpert.id, name: fixxpert.full_name, email: mail_to(fixxpert.email), is_registration_completed: admin_fixxpert_status_link(fixxpert), active: admin_user_activation_link(fixxpert), searchable: admin_fixxpert_searchable_link(fixxpert), admin: admin_user_admin_link(fixxpert), is_featured: admin_fixxpert_featured_link(fixxpert), upload_image: admin_user_image_upload_form(fixxpert), user_activity: user_activity_link(fixxpert) } end
Provide the sequence in which columns to be sorted.
# File app/datatables/fixxperts_datatable.rb, line 41 def sort_columns %w(name email is_registration_completed activation_state searchable admin) end