Я использую jQuery DataTables и хочу, чтобы фильтр по группам переключался на кнопки.Datatables and Using Filters
В настоящее время в моей таблице показаны инструменты, принадлежащие текущему пользователю, но я хочу, чтобы они могли также искать инструменты других групп.
Например. Пользователь 1 принадлежит группе 1. В таблице по умолчанию отображаются все инструменты Group 1. Но когда они нажимают «Группа 2», я хочу, чтобы таблица обновлялась, чтобы показать все инструменты группы 2.
В настоящее время, это работает с параметрами POST:
def my_search
if params[:search][:value].present?
records = Tool.full_text_search(params[:search][:value])
elsif params[:group]
records = Tool.where(group: params[:group])
else
records = Tool.where(group: current_user.group)
end
end
Это JQuery, который работает с моей функции рельсов:
var toolTable = $('#tools-table').DataTable({
"ajax": {
'url':'/tools.json',
'data': {
group: function() {
return group;
}
}
},
"columns": [
{data: '0'},
{data: '1'},
{data: '2'},
{data: '3'},
{data: '4'},
{data: '5'}
],
'columnDefs': [{
'orderable': false,
'targets': ['nosort']
}],
// autoWidth: false,
// pagingType: 'full_numbers',
processing: true,
serverSide: true,
"bPaginate": true,
"bLengthChange": false,
"bFilter": true,
"bInfo": false,
"bAutoWidth": false
});
Я использую панель инструментов для переключения, например: http://www.bootstrap-switch.org/examples.html...But Я попытался использовать этот пример, и кажется, что моя структура данных doesn 't соответствовать вашим. Будет ли запрос данных каждый раз, когда произойдёт изменение? –
@KevinBrown, yes 'ajax.reload()' заставит DataTables отправить запрос. Помните, что вам нужно использовать событие 'switchChange.bootstrapSwitch' вместо' change' (см. [Events] (http://www.bootstrap-switch.org/events.html)). Также '$ ('# example-group'). Val()' необходимо заменить соответствующим методом для получения значения переключателя. –
Итак, я рядом. Если я вручную установлю «данные»: «group_name», я получаю отфильтрованный ответ. Но когда я устанавливаю функцию, никакие параметры не передаются. Я буду обновлять свой код завтра. –