索引中的 Activeadmin 自定义可排序列
Activeadmin custom sortable column in index
我在索引中有自定义的可排序列 'Status',我怎样才能使其可排序?
index do
selectable_column
column :title
column :counter
column 'Status', do |purchase|
if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc
'ended'
elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc
'active'
else
purchase.status
end
end
end
根据 the docs,您应该能够像这样将 :sortable
键传递给 column
调用:
index do
# SNIP
column 'Status', sortable: :status do |purchase|
# SNIP
end
end
索引 table 自定义排序的文档位于 index as table page。
这样解决了一个问题
column 'Status', sortable: :status do |purchase|
if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc
'ended'
elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc
span class: "purchase-status-active" do
'active'
end
else
purchase.status
end
end
controller do
def find_collection(options = {})
if params[:order] == 'status_desc'
super.reorder(status: :desc, expiration_date: :desc)
elsif params[:order] == 'status_asc'
super.reorder(status: :asc, expiration_date: :asc)
else
super
end
end
end
我在索引中有自定义的可排序列 'Status',我怎样才能使其可排序?
index do
selectable_column
column :title
column :counter
column 'Status', do |purchase|
if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc
'ended'
elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc
'active'
else
purchase.status
end
end
end
根据 the docs,您应该能够像这样将 :sortable
键传递给 column
调用:
index do
# SNIP
column 'Status', sortable: :status do |purchase|
# SNIP
end
end
索引 table 自定义排序的文档位于 index as table page。
这样解决了一个问题
column 'Status', sortable: :status do |purchase|
if purchase.status == 'verified' && purchase.expiration_date < DateTime.now.utc
'ended'
elsif purchase.status == 'verified' && purchase.expiration_date >= DateTime.now.utc
span class: "purchase-status-active" do
'active'
end
else
purchase.status
end
end
controller do
def find_collection(options = {})
if params[:order] == 'status_desc'
super.reorder(status: :desc, expiration_date: :desc)
elsif params[:order] == 'status_asc'
super.reorder(status: :asc, expiration_date: :asc)
else
super
end
end
end