私は自分のコードを枯らして、多くの人がCSVやRubyの経験があるかどうか疑問に思っています。CSV書き出し内でループを使用する - Ruby
私のコードは以下の通りです。それはちょうど...ひどい。
誰もが、私は次の操作を行うことができる方法上の任意のアイデアを持っている場合、私は思ったんだけど:
1 - どのように私は私がやったループではなく、明示的な1..10を使用することができます。私はいくつかの方法を試しましたが、CSVで動作させることができませんでした。 2 - CSVでヘッダーを行う方法はありますか? 3 - CSVコードをうまく作成する方法に関する他のアイデアはありますか?
CSVシステムは、そのいずれかを好きではなかったしかし、私は最初にこの
(1..10).each do |number|
end
と一緒に行きました!私の最後のステートメントは間違っていると思っていたが、私はこれが当てはまるとは思わない。
ここに私のコードです。明るいアイデアがあれば、あなたは素晴らしいです!はい、私はそれがひどいことを知っている、ちょうど私がそれをより良くすることができると思う!
require 'csv'
class CampagignsCsv
class << self
HEADERS = [
'Job Title',
'Business Name',
'Business Contact Name',
'Location',
'Job Status',
'Created date',
'Last Modified date',
'# Positions',
'Description',
'Std/Prem',
'Referral code (To discuss)',
'Coupon code (To discuss)',
'Question1',
'Knockout?1',
'Correct Answer1',
'Question2',
'Knockout?2',
'Correct Answer2',
'Question3',
'Knockout?3',
'Correct Answer3',
'Question4',
'Knockout?4',
'Correct Answer4',
'Question5',
'Knockout?5',
'Correct Answer5',
'Question6',
'Knockout?6',
'Correct Answer6',
'Question7',
'Knockout?7',
'Correct Answer7',
'Question8',
'Knockout?8',
'Correct Answer8',
'Question9',
'Knockout?9',
'Correct Answer9',
'Question10',
'Knockout?10',
'Correct Answer10'
].freeze
def report
puts 'campaigns_report.csv created in reporting_output folder'
CSV.open("reporting_output/campagins_report.csv", "wb") do |csv|
csv << HEADERS
Paddl::Models::Job.all.each do |job|
csv << [
job.title,
job.employer.business_name,
job.employer.profile.full_name,
job.address,
job.status,
job.created_at,
job.updated_at,
job.num_of_positions,
job.description,
job.employer.account_type,
'null',
'null',
job.job_questions.map { |item| item[:question] }[1],
job.job_questions.map { |item| item[:knockout] }[1],
job.job_questions.map { |item| item[:correct_answer] }[1],
job.job_questions.map { |item| item[:question] }[2],
job.job_questions.map { |item| item[:knockout] }[2],
job.job_questions.map { |item| item[:correct_answer] }[2],
job.job_questions.map { |item| item[:question] }[3],
job.job_questions.map { |item| item[:knockout] }[3],
job.job_questions.map { |item| item[:correct_answer] }[3],
job.job_questions.map { |item| item[:question] }[4],
job.job_questions.map { |item| item[:knockout] }[4],
job.job_questions.map { |item| item[:correct_answer] }[4],
job.job_questions.map { |item| item[:question] }[5],
job.job_questions.map { |item| item[:knockout] }[5],
job.job_questions.map { |item| item[:correct_answer] }[5],
job.job_questions.map { |item| item[:question] }[6],
job.job_questions.map { |item| item[:knockout] }[6],
job.job_questions.map { |item| item[:correct_answer] }[6],
job.job_questions.map { |item| item[:question] }[7],
job.job_questions.map { |item| item[:knockout] }[7],
job.job_questions.map { |item| item[:correct_answer] }[7],
job.job_questions.map { |item| item[:question] }[8],
job.job_questions.map { |item| item[:knockout] }[8],
job.job_questions.map { |item| item[:correct_answer] }[8],
job.job_questions.map { |item| item[:question] }[9],
job.job_questions.map { |item| item[:knockout] }[9],
job.job_questions.map { |item| item[:correct_answer] }[9],
job.job_questions.map { |item| item[:question] }[10],
job.job_questions.map { |item| item[:knockout] }[10],
job.job_questions.map { |item| item[:correct_answer] }[10]
]
end
end
end
end
end
スマート。それを配列に入れてそれを平らにしてください:) –