Я пытаюсь отобразить файл haml в ответе javascript следующим образом:
$('#<%= @email.unique_name %> .preview .mail_content').html('<%=j render( :file => "user_mailer/#{@email.key}") %>');
Пример файла, который будет отображаться:
- variables = { :contact_first_name => @contact.first_name, :user_full_name => @user.name, :user_first_name => @user.first_name }
= @email.intro_html(variables)
%p= "Please click the link below to go directly to the results of #{@user.first_name}'s assessment. You can also access an analysis of that assessment from that page."
%p= share_results_url(@token)
= @email.conclusion_html(variables)
Теперь возникают две проблемыдля меня, если мы посмотрим на JavaScript, который приводится в ответе:
$('#launch_share_results .preview .mail_content').html('\u003Cp\u003EHi Jane,\u003C/p\u003E
\u003Cp\u003EJohn Smith has taken a 360(deg) \u003Cspan style=color:red;\u003E\u003Cstrong\u003ENo such variable available!\u003C/strong\u003E\u003C/span\u003E assessment through myLAUNCHtools.com and would like to share the results with you.\u003C/p\u003E
\u003Cp\u003EPlease click the link below to go directly to the results of John's assessment. You can also access an analysis of that assessment from that page.\u003C/p\u003E
\u003Cp\u003Ehttp://lvh.me:3000/assessments/results/1\u003C/p\u003E
\u003Cp\u003EThank you in advance for your time and interest in John\u0026#8217;s leadership.\u003C/p\u003E
\u003Cp\u003ESincerely,\u003Cbr /\u003E
Launch\u003C/p\u003E
');
Основная проблема заключается в том, что в ответе есть новые строки.Это нарушает запрос.Я предположил, что использование j перед вызовом рендеринга исправит это, но это не так.
Другая проблема заключается в том, что в третьей строке файла haml у меня есть:
#{@user.first_name}'s assessment
и этот апостроф также нарушает запрос.(Я знаю это, потому что я использовал функцию javascript для удаления всех новых строк, и запрос все еще прерывался, пока я не удалил и этот апостроф)
Есть ли более простой способ очистки ответа javascript, чем цепочкана функции JavaScript, чтобы очистить его для меня?