我想创建一个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
答案 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哈希中传递其他键值,以对结果进行较小的自定义。