活动管理员更改 headers 的 csv 以及向输出添加文本

Active admin change headers for the csv as well as add text to the output

您好,我希望能够更改 headers 用于 csv 输出的内容。因此,我想将其改为 "client name",而不是 :name = "name"。无需重命名变量。我该怎么做。

例如。

column "client name", :name

-

此外,我想将 cf 添加到 id 的输出中,这样它就会显示例如“3 cf”而不是 3。类似这样但有效。

    column(:id) + "CF"

- 完整代码。对于订单。

ActiveAdmin.register Order do
  scope :not_completed_orders
  menu priority: 3
  batch_action :manifest do |ids|
    redirect_to "/admin/orders.csv?q[id_in][]=" + ids.join("&q[id_in][]=")
  end

  index do
    selectable_column
    column :id
    column :user
    column :name
    column :delivery_name
    column :complete
    column :delivery_address1
    column :service
    column :insurance
    actions
  end

  csv do
    column :created_at
    column :name
    column :delivery_name
    column(:id)
  end

  permit_params do
    permitted = [:email ,:country ,:city ,:postcode, :address_line_2, :address_line_1 ,:user_id, :name, :delivery_name, :company_name, :delivery_address1, :delivery_address2, :delivery_address3, :delivery_city, :delivery_postcode, :delivery_country, :phone, :package_contents, :description_content, :restricted_items, :terms_conditions, :insurance, :contents_value, :cf_reference, :reference_number, :complete]
    permitted
  end
end
# completed_at

非常感谢任何帮助。谢谢

在您的 csv 块中,您可以像这样定义自己的自定义 header:

column "client name" do |order|
  order.name
end

自定义值相同:

column "ID" do |user|
  "#{user.id} CF" 
end

或者如果您更喜欢单行,您可以将上面的代码更改为如下所示:

column("client name"){ |order| order.name }

类似的代码适用于自定义值。

使用列参数解决humanize_name: false

csv force_quotes: true do
    column :a_b_c_d, humanize_name: false
end