我一遍又一遍地阅读关于这个主题的文档,但是我无法理解/使它工作,我正在使用antillas21 21/ajax- datatables rails宝石作为我的数据数据,但我不能使工作成为包含关联的表的排序/搜索功能。
在这里,有关它的文档链接:
https://github.com/antillas21/ajax-datatables-rails/issues/77 https://github.com/antillas21/ajax-datatables-rails#associated-and-nested-models
我尝试了几种方法,这就是给我“更好”结果的方法(至少显示了数据)。
首先是模特。
订单
:id => :integer,
:school_id => :integer,
:year => :integer,
:paymethod => :string,
:contract => :string,
:created_at => :datetime,
:updated_at => :datetime,
:number => :integer,
:licitacion => :string学校
:id => :integer,
:nombre => :string,
:rut => :string,
:direccion => :string,
:email => :string,
:commune_id => :integer公社
:id => :integer,
:name => :string,
:region_id => :integer地域
:id => :integer,
:name => :string,OrderStatus
:id => :integer,
:order_id => :integer,
:status_type_id => :integer,
:comentario => :string,
:created_at => :datetime,
:updated_at => :datetimeStatusType
:id => :integer,
:nombre => :string,
:descripcion => :string,
:created_at => :datetime,
:updated_at => :datetimeorders_datatable
def sortable_columns
# Declare strings in this format: ModelName.column_name
@sortable_columns ||= %w(Order.id School.nombre Commune.name Region.name Order.year Order.paymethod Order.contract StatusType.nombre)
end
def searchable_columns
# Declare strings in this format: ModelName.column_name
@searchable_columns ||= %w(Order.id School.nombre Commune.name Region.name Order.year Order.paymethod Order.contract StatusType.nombre)
end
private
def data
records.map do |record|
[
# comma separated list of the values for each cell of a table row
# example: record.attribute,
link_to(record.try(:number), order_proccesses_path(record)),
link_to(record.school.try(:nombre), order_proccesses_path(record)),
link_to(record.school.commune.try(:name), order_proccesses_path(record)),
link_to(record.school.commune.try(:region).try(:name), order_proccesses_path(record)),
link_to(record.try(:year), order_proccesses_path(record)),
link_to(record.try(:paymethod), order_proccesses_path(record)),
link_to(record.try(:contract), order_proccesses_path(record)),
link_to(record.order_statuses.last.status_type.try(:nombre), order_proccesses_path(record)),
edit_and_delete_buttons(record)
]
end
end
def get_raw_records
# insert query here
Order.joins(:school).all
endorders.coffee
$ ->
$('#orders-table').dataTable
processing: true
serverSide: true
ajax: $('#orders-table').data('source')
paginType: 'full_numbers'
responsive: true
language:
url: "/assets/Spanish.json"
columns: [
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: true, searchable: true }
{ sortable: false, searchable: false }
]耽误您时间,实在对不起
发布于 2015-12-03 01:51:17
antillas21的答复:)
# if using .includes
def get_raw_records
Order.includes(
:school => { :commune => :region }, :order_statuses => :status_type
)
.references(
:school => { :commune => :region }, :order_statuses => :status_type
).distinct
end
# alternatively, you can use .joins
def get_raw_records
Order.joins(
:school => { :commune => :region }, :order_statuses => :status_type
).distinct
end希望这对其他人有用
发布于 2016-09-28 11:39:49
也许这对你来说会很有趣- http://ajahongir.github.io/ajax-datatables-rails/
https://stackoverflow.com/questions/34033182
复制相似问题