1

我将Comma gem与 Rails 一起使用。这是我的客户模型:

class Customer
  include MongoMapper::Document

  key :customer_id, Integer
  key :company_id, String
  key :first_name, String, :required => true
  key :last_name, String
  key :email, Array, :unique => true, :required => true
  key :phone, Array

  comma do 
    first_name
    last_name
    email
    phone
  end
end

然后我渲染:

format.csv { render :csv => @all_customers }

@all_customers只是这个特定环境的客户集合 - 这部分工作正常。

当我导出到 CSV 时,我得到这些类型的整体:

["dan@whatever.com"]

我知道这是因为电子邮件是一个数组,而 Comma 只是在字面上呈现整个内容。我想:

dan@whatever.com

通常我会做类似的事情:

email[0]

它会从数组中获取那个值。但是尝试这样做并没有导致导出的 CSV 有任何差异。仍然有不必要的括号和引号。

我如何只抓住元素并避免括号和引号?

4

1 回答 1

1

如果您只想要第一封电子邮件,那么

comma do 
    first_name
    last_name
    email do |email| email[0] end
    phone
end

或者如果你想要所有的电子邮件,那么

comma do 
    first_name
    last_name
    email do |email| email.join(',') end
    phone
end
于 2013-06-04T01:24:36.233 回答