Я пытаюсь использовать камень ajax-datatables-rails
, найденный here, не повезло. Моя таблица отображается и имеет правильные данные (для первой страницы), но когда я пытаюсь выполнить поиск, сортировку или изменение страниц, данные таблицы не обновляются.Rails 4 + Datatables: Ajax-datatables-rails gem не обновляет таблицу
Я пропустил что-то простое?
Посмотреть
<table id="users-table" data-source="<%= users_path(format: :json) %>">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Admin?</th>
<th>Employee?</th>
<th>Client?</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Контроллер
def index
respond_to do |format|
format.html
format.json { render json: UserDatatable.new(view_context) }
end
end
Datatable
class UserDatatable < AjaxDatatablesRails::Base
# uncomment the appropriate paginator module,
# depending on gems available in your project.
# include AjaxDatatablesRails::Extensions::Kaminari
include AjaxDatatablesRails::Extensions::WillPaginate
# include AjaxDatatablesRails::Extensions::SimplePaginator
def sortable_columns
# list columns inside the Array in string dot notation.
# Example: 'users.email'
@sortable_columns ||= [
'users.id',
'users.name',
'users.email',
'users.admin',
'users.employee',
'users.is_client'
]
end
def searchable_columns
# list columns inside the Array in string dot notation.
# Example: 'users.email'
@searchable_columns ||= [
'users.id',
'users.name',
'users.email',
'users.admin',
'users.employee',
'users.is_client'
]
end
private
def data
records.map do |record|
[
# comma separated list of the values for each cell of a table row
# example: record.attribute,
record.id,
record.name,
record.email,
record.admin,
record.employee,
record.is_client
]
end
end
def get_raw_records
# insert query here
User.all
end
# ==== Insert 'presenter'-like methods below if necessary
end
JS
$('#users-table').dataTable({
"processing": true,
"serverSide": true,
"ajax": $('#users-table').data('source')
"pagingType": "full_numbers"
// optional, if you want full pagination controls.
// Check dataTables documentation to learn more about
// available options.
});
Это ваш '$ ('# users-table'). DataTable()' вызов в обратном вызове DOMReady? – Uzbekjon
Да, и его с кучей других функций, называемых успешно. Диаграмма загружается, она просто не обновляется, и запросы ajax кажутся одинаковыми. –