我们如何在索引面板

时间:2015-12-31 05:43:14

标签: ruby-on-rails activeadmin

我想创建一个partials来为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

2 个答案:

答案 0 :(得分:7)

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

# 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 %>
  

我可以确认这适用于.erb扩展文件和.haml,但不保证其他人

答案 1 :(得分:1)

这在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

这也满足将文件放置在不特定于admin /空间的共享位置。之所以有用,是因为我的AA运行着两个单独的用户模型,并且我经常希望共享相同的代码以进行索引,显示等,但差别很小。

如果需要,可以在locals哈希中传递其他键值,以对结果进行较小的自定义。