是否使用服务器端处理对关联表中的列数据进行排序?
在服务器端操作数据表,但不允许对相关的表值进行排序
class Workshop < ActiveRecord::Base
belongs_to :location, :class_name => 'Location'
end
class Location < ActiveRecord::Base
has_many :workshops
attr_accessible :name,
end
记录按id关联(workshop.id=位置\u id)
在Workshop datatable类中,显示的信息是位置名称
class WorkshopsDatatable
def data
workshops.map do |workshop|
{
id: workshop.id,
location: workshop.location_name,
}
end
end
我希望能够按location_name而不是location_id对位置列进行排序。
谢谢你
按如下方式修改WorkshopStatable类中的行:
def sort_column
columns = %w[id location_name]
columns[params[:iSortCol_0].to_i]
end
谢谢你的回答。我很惊讶这是不可能的,因为json呈现引用的是Workshops活动记录,而不是位置活动记录
<div class="well well-tzippy datatable-component">
<table id="workshops" class="table-striped" data-source="<%= workshops_url(format: "json") %>">
<thead>
<tr>
<th class="text-left">Title</th>
<th class="text-left">Instructor</th>
<th>Scheduled Time</th>
<th class="text-left">Location</th>
<th class="text-left">Contact</th>
<th>Stats</th>
</tr>
</thead>
<tbody>
</tbody>
请注意,数据源引用Workshop_path,因此location_name是表中与研讨会活动记录关联的位置一列,location_id=Workshop.id:
data-source="<%= workshops_url(format: "json") %>">