我使用的數據表服務器端,但我不能讓JSON對象。 該表的初始化過程是這樣:如何獲得JSON數據表中的列初始化對象的值,如果其名稱中包含點?
var table = $('#index-table-company_tutors').DataTable({
buttons: buttons,
serverSide: true,
order: [[0, 'asc']],
pageLength: 10,
ajax: 'company_tutors.json',
columns: [
{ data: 'company_tutors.name' },
{ data: 'company_tutors.surname' },
{ data: 'company_tutors.phone' },
{ data: 'company.name'}
]});
我使用Rails,所以在指數控制器我得到的列名,然後我在數據庫中選擇它,但在這種情況下,我需要連接兩個這些屬性具有相同的名稱。出於這個原因,我需要使用company_tutors.name
年底company.name
format.json do
# search[value]:
# default 10 massimo 50
limit = [(params[:length] || '10').to_i, 50].min
# default 0
offset = params[:start].to_i
# always include :id column
columns = (params[:columns]
.reject { |_, value| value[:data] == '' } # workaround exclude empty column (last one)
.map { |_, value| value[:data].to_sym } << :id).uniq
#
order = (params[:order].map do |_, spec|
# default :id
column = spec[:column] ? columns[spec[:column].to_i] : :id
# default :asc
dir = spec[:dir] == 'desc' ? :desc : :asc
[column, dir].join(' ')
end)
page = if params[:search][:value].blank?
@company_tutors.joins(:farm)
.limit(limit).offset(offset)
.order(order)
else
@company_tutors.joins(:farm)
.search(params[:search][:value])
.limit(limit).offset(offset)
.order(order)
end
@data = page.pluck(*columns).map { |x| Hash[columns.zip(x)] }
end
這是生成的JSON的例子:
{"data":[{"company_tutors.name":"Name_test","company_tutors.surname":"Surname_test","company_tutors.phone":"335-7744391","company.name":"Company name","id":18}]}
的JSON很好地產生,但數據表給我這個錯誤:
DataTables warning: table id=index-table-company_tutors - Requested unknown parameter 'company_tutors.name' for row 0, column 0. For more information about this error, please see http://datatables.net/tn/4
我想,我必須將數據保存在一個變量,不是做這樣的事情:
var table = $('#index-table-company_tutors').DataTable({
buttons: buttons,
serverSide: true,
order: [[0, 'asc']],
pageLength: 10,
ajax: 'company_tutors.json',
columns: [
{ data: mydata['company_tutors.name'] },
{ data: mydata['company_tutors.surname'] },
{ data: mydata['company_tutors.phone'] },
{ data: mydata['company.name']}
]});
但我不知道該怎麼做。