我们如何在索引面板的活动管理中创建部分

how can we create partials in active admin for index panel

我想创建一个部分以在索引面板中为 DRY 的不同命名空间呈现一些数据

我正在写

 index do
    render 'index', user: :user    
 end
//_index.html.arb
column :id
column 'Customer Name', :name
column :mobile
column :recipient_number    
column :cash_in_hand do |customer|
  number_to_currency(customer.cash_in_hand, unit: "\u20B9", precision: 2)
end
column "Due Balance" do |customer|      
  number_to_currency(customer.due_balance, unit: "\u20B9", precision: 2)
end
actions

您可以创建一个部分来完全像这样呈现该数据

# app/admin/some_class.rb
index do
  render 'admin/index', context: self    
end

您可能希望在视图中为这些类型的部分创建一个名为 'admin' 的文件夹...

# app/views/admin/_index.html.erb
<% context.instance_eval do
  column :id
  column 'Customer Name', :name
  column :mobile
  column :recipient_number    
  column :cash_in_hand do |customer|
    number_to_currency(customer.cash_in_hand, unit: "\u20B9", precision: 2)
  end
  column "Due Balance" do |customer|      
    number_to_currency(customer.due_balance, unit: "\u20B9", precision: 2)
  end
  actions
end %>

I can confirm this works with .erb extention file and .haml but no guaranteeing others

这在 Rails 6 中对我有用:

#app/admin/some_class.rb
index do
  render partial: 'active_admin/index', locals:{context: self}
end

#app/views/active_admin/_index.html.arb
context.instance_eval do
  selectable_column
  id_column
  column :some_attribute
  actions
end

这也满足了将文件定位在不特定于管理员的共享位置/ space。这很有用,因为我有 AA 运行 两个独立的用户模型,我经常想为索引、显示等共享相同的代码,但略有不同。

如果需要,可以在本地散列中传递额外的 key-values 以对结果进行较小的自定义。