CSVファイルを書き出すことができるRailsアプリケーションのコードがあります。値がないフィールドがあるレコードがない限り正常に動作します。その場合は失敗します。例えば、address_line_1を持たないユーザーがいるため、「No Method Error」と「address_line_1」を具体的に参照しています。しかしそれは一つの例です。本当にすべてのフィールドは潜在的な空白から保護されるべきです。コードは以下の通りです:Rails - 空白のフィールドがあるとCSVに失敗する
def download_kids_csv
@csv_headers = ['First',
'Last',
'Child First',
'Child Last',
'Parent Email',
'School',
'Class',
'Address',
'City',
'State',
'Zip',
'Parent Phone']
@kid_data = []
@school = School.find(params[:school_id])
@school.classrooms.each do |classroom|
classroom.kids.includes(:users).each do |kid|
kid.users.each do |parent|
@kid_data << {
first: parent.first_name,
last: parent.last_name,
child_first: kid.first_name,
child_last: kid.last_name,
parent_email: parent.email,
school: @school.name,
class: classroom.classroom_name,
address: parent.addresses.first.address_line_1,
city: parent.addresses.first.city,
state: parent.addresses.first.state,
zip: parent.addresses.first.zip_code,
parent_phone: parent.phones.first.phone_number
}
end
end
end
respond_to do |format|
format.csv do
headers['Content-Disposition'] = "attachment; filename=\"#{@school.name.downcase.gsub(' ', '-')}-data.csv\""
headers['Content-Type'] ||= 'text/csv'
end
end
end
恐ろしいです。私はこれを試して、報告するつもりです。はい、多くのコードとデータが多くのことを望んでいることはわかっています。 –
だから私はこれを試しましたが、今私はビューで問題を抱えています –
ケアを説明する? –