我正在处理一个csv文件,其中包含一些客户信息(电子邮件,姓名,地址,金额,[shopping_list:第1项,第2项])。
我想处理数据并生成一些打印标签......以及收集一些额外信息(总金额,总项目数1 ......)
我主要关心的是找到适当的结构来将数据存储在ruby中以供将来操作。现在我想到了以下几种可能性:
我非常感谢您的建议和指导!!
答案 0 :(得分:2)
如果您需要将多个信息组合在一起,那么就应该考虑从通用哈希/数组转移到更专业的信息。你所描述的是一个很好的候选人是Ruby的struct
module:
Customer = Struct.new(:email, :name, :address) # etc.
bill = Customer.new('bill@asdf.com', 'Bill Foo', '123 Bar St.')
puts "#{bill.name} lives at #{bill.address} and can be reached at #{bill.email}"
输出:
Bill Foo lives at 123 Bar St. and can be reached at bill@asdf.com
Struct#new
只为你传入的每个符号创建一个attr_accessor
的类。嗯,它实际上创造了更多,但对于初学者来说,这就是你需要担心的一切。 / p>
一旦你将每一行的数据打包成某种对象(无论是struct
还是你自己的类),那么你可以担心如何存储那些对象。