在ActiveAdmin中,可以使用"index"方法对CSV表按ID进行排序。
首先,在相应的资源管理器类中打开index
方法,然后使用csv
方法定义CSV的输出。在csv
方法中,可以使用column
方法定义要在CSV中显示的列,并使用sortable
方法指定按照哪一列排序。对于按ID排序,可以使用:id
作为参数。最后,使用order_by
方法将结果按照指定的排序参数进行排序。
以下是一个示例代码:
ActiveAdmin.register YourModel do
controller do
def index
super do |format|
format.csv do
csv_options = { col_sep: ',' }
headers['Content-Disposition'] = "attachment; filename=\"your_models.csv\""
headers['Content-Type'] ||= 'text/csv'
# 定义CSV列和排序
csv_data = CSV.generate(csv_options) do |csv|
csv << ['ID', '名称', '其他列']
collection.order('id ASC').each do |item|
csv << [item.id, item.name, item.other_column]
end
end
# 输出CSV数据
self.response_body = csv_data
end
end
end
end
end
这样,在ActiveAdmin的资源管理器中,导出的CSV表将按照ID进行排序。
请注意,以上代码示例中的YourModel
需要替换为你的模型名称,名称
和其他列
需要根据实际情况进行调整。同时,你也可以根据需要修改文件名和列的顺序。
领取专属 10元无门槛券
手把手带您无忧上云