Rails ActionMailer внедряет возврат каретки перед символами новой строки во вложениях - PullRequest
0 голосов
/ 04 июня 2019

Я использую ActionMailer для отправки генерируемого файла CSV. Содержимое CSV выглядит следующим образом:

download_file = "Requestor Name,Job Name,Number of workers needed,Number of workers ranked,Venue,Street Address,City,State,Zip code,List of required badges,List of accepted Worker's name & email ,Job Request state,Flexible Start Time,Job Request Start Time,Job Request Max Start Time,List of Selected Date,Job Request duration,Multi-day Job,Multi-day Job ID,Number of unpaid breaks,Break minutes\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\n"

Затем я назначаю его вложением:

attachments["#{file_name}_#{export_time}.csv"] = download_file

Затем я проверяю содержимое. Тест не пройден. Я вижу, что вложение выглядит так:

"Requestor Name,Job Name,Number of workers needed,Number of workers ranked,Venue,Street Address,City,State,Zip code,List of required badges,List of accepted Worker's name & email ,Job Request state,Flexible Start Time,Job Request Start Time,Job Request Max Start Time,List of Selected Date,Job Request duration,Multi-day Job,Multi-day Job ID,Number of unpaid breaks,Break minutes\r\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\r\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\r\nJohn Doe,Request name 1,1,,,575 Market street,San Francisco,CA,94105,\"\",\"\",posted,No,\"Jun 3 2019, 4:03pm\",,\"\",,No,,,\r\n"

Обратите внимание, что теперь весь код \n заменен на код \r\n. Это произошло при обновлении с Rails 4.1 до 4.2. Что здесь происходит?

Кроме того, я не могу редактировать вложение. Тело вложения имеет атрибут raw_source, но ни тело, ни raw_source не являются редактируемыми, поэтому я не могу добавить его. Что я могу сделать здесь, чтобы удалить новый \r?

...