我試圖幹起我的代碼,並想知道如果很多人有CSV和Ruby的經驗。在CSV導出中使用循環 - Ruby
我的代碼如下。它的工作原理就是......太可怕了。
我想知道如果任何人有我如何能做到以下任何想法:
1 - 我怎麼能使用一個循環,而不是明確的1..10,我已經做到了。我確實嘗試了幾種方法,但無法讓他們使用CSV。 2 - 是否有更好的方式來做CSV的標題? 3 - 有關如何使CSV代碼更好的其他想法?
我最初去這個
(1..10).each do |number|
end
然而,CSV系統不喜歡那一個!它認爲我的結論是不正確的,但我不認爲這是事實。
這是我的代碼。如果你有任何明智的想法,你真棒!是的,我知道這很糟糕,只是想知道我該如何做得更好!
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
聰明。把它放到一個數組中然後壓平它:) –