某些管理员的用户需要拥有两个表格视图,例如模型Bar
:默认一个已经拥有的,另一个新的具有不同的列集。
设置如下:
ActiveAdmin.register Bar do
# …
index do
column :name
column :phone
column :address
end
# …
预计会像添加另一个index
块一样简单:
ActiveAdmin.register Bar do
# …
index do
column :name
column :price
column :bartender
end
index name: 'location' do
column :name
column :phone
column :city
column :country
end
然后只是在某处获得附加标签。
正如您可能猜到的那样并非那么简单。 ActiveAdmin对虚构的index name:
属性一无所知,只是选择第一个index
块静默忽略第二个index
块。
ActiveAdmin文档显示了add second/third/etc index page轻松但不同类型的方法:
index as: :grid do |bar|
link_to(image_tag(bar.photo_path), admin_bar_path(bar))
end
很好,但是如何使用不同的列添加索引表视图的副本?
答案 0 :(得分:3)
有一招。
在ActiveAdmin之前显示index
方法允许as:
参数的索引类型编码为符号(ATM,其中之一::block
,{{1 },:blog
和:grid
)。除了符号(这只是一些内部AA类的快捷方式),它可以传递任何Ruby类:
:table
以下是解决方案的代码。 我们的新表索引页要做的四件事:
index as: CustomTableIndex do
# …
end
ActiveAdmin::Views::IndexAsTable
,其名称为新索引页index_name
方法index
中的:
app/admin/bars.rb
ActiveAdmin.register Bar do
# …
# 1.
class MyLocationIndex < ActiveAdmin::Views::IndexAsTable
# 2.
def self.index_name
"bars_location"
end
end
# 3.
index as: MyLocationIndex do
column :name
column :phone
column :city
column :country
end
# …
end
中的:
config/locales/admin.yml