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

时间:2015-08-17 11:55:57

标签: ruby-on-rails ruby csv ruby-on-rails-4 activeadmin

您好我希望能够更改csv输出的标题。因此,而不是: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

非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:2)

使用列参数humanize_name: false

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

答案 1 :(得分:1)

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

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

自定义值相同:

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

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

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

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