※「販売数」と「価格」を取り違えた例。データ次第では気が付かない コードを改善しよう ヘッダと、ヘッダに対応する各値の実装が分離しているから取り違えてしまいます。 ならば同時に書ければ取り違えは起こりません。 こんなコードにしてみました。 def self.dump_csv rule = { '年度' => lambda(&:year), '号数' => lambda(&:no), 'タイトル' => lambda(&:title), '価格' => lambda(&:price), } CSV.generate do |csv| csv << rule.keys all.each do |article| csv << rule.values.map { |predicate| predicate.call(article) } end end end なにしてるんだろう? まずはヘッダ
![Ruby: CSVでヘッダとボディを同時に定義するやり方|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/25b7bf3a34b6a6c0444d87c6c1cc4faea0683b14/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2019%2F07%2Fruby_csv_header_body_lambda_eyecatch.png)