Wil*_*ill 11 ruby-on-rails activeadmin
在一个活跃的管理员显示页面中,我有两个面板,第一个是主记录,第二个是关联信息(由has_many),所以show看起来像这样:
panel "Max Amount" do
table_for user.max_amount do
column 'Amount', :amount
column 'time', :updated_at
end
end
Run Code Online (Sandbox Code Playgroud)
我可以在金额列中对此从高到低(或从低到高)排序?
更新:我找到了演示(源https://github.com/gregbell/demo.activeadmin.info/blob/master/app/admin/users.rb这似乎已经排序),但是当你去实际演示网站它不工作.这个功能可能会破坏吗?有解决方法吗?
idr*_*bst 14
我发现这样做的唯一方法是有点hacky.ActiveAdmin将通过params哈希传递列名和asc/desc,然后您可以将其添加到您的查询中.
另外,确保将"sortable:true"传递给table_for调用.
panel "P&L" do
table_for Quote.order(params[:order].gsub('_', ' ')), sortable: true do
column("Revenue", sortable: :revenue) { |quote| number_to_currency quote.revenue }
column("Profit", sortable: :profit) { |quote| number_to_currency quote.profit }
end
end
Run Code Online (Sandbox Code Playgroud)
使用rails 4.2,基于@idrinkpabst,我做了以下事情:
table_for group.devices.order(
# Support for column name with underscore
# Support "no sort param"
(params[:order] ? params[:order] : '').gsub('_asc', ' asc').gsub('_desc', ' desc')
), sortable: true do
# Directly using symboles and not using sortable:
column :presence
column :serial_number
column :apk_version
column :firmware_version
end
Run Code Online (Sandbox Code Playgroud)
这是一个更强大的版本:
| 归档时间: |
|
| 查看次数: |
5388 次 |
| 最近记录: |