Rails:CSV.生成和重命名标头

oka*_*56k 5 csv ruby-on-rails ruby-on-rails-4

我将一堆记录导出到 CSV,如下所示:

def self.to_csv
  attributes = %w(full_name first_name last_name created_at status)

  CSV.generate(headers: true) do |csv|
    csv << attributes
    all.each do |lead|
      csv << attributes.map { |attr| lead.send(attr) }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但我需要标题读起来像Full Namenot full_name。我需要一个哈希来匹配名称,这很好,但是如何将新的标头名称写入其中的 CSV 文件 CSV.generate

更新查找哈希。

def lookup
  {
    full_name: 'Full Name', first_name: 'First Name', last_name: 'Last Name', created_at: 'Generation Date', status: 'Status'
  }
end
Run Code Online (Sandbox Code Playgroud)

cod*_*rhs 3

对属性数组调用 titalize 应该可以帮助您实现您的目标。

def self.to_csv
  CSV.generate(headers: true) do |csv|
    csv << lookup.values
    all.each do |lead|
      csv << lookup.keys.map { |attr| lead.send(attr) }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)