Rails3: как получить js.erb для вставки HTML на вашу страницу - PullRequest
0 голосов
/ 04 ноября 2010

У меня есть представление js.erb, и оно заменит некоторые вещи на моей странице.Я хочу, чтобы он вставлял HTML, но вставляемый HTML-код не отображается должным образом - вы можете видеть html-теги.

Я испробовал множество методов, которые мог себе представить, и даже больше, которые рекомендовали другие, нонет работы.Например, в моем js.erb:

var list = $("#list");
list.append("<li>first</li>");
list.append("<%= "<li>second</li>" %>");
list.append("<%= raw("<li>third</li>") %>");
list.append("<%= escape_javascript raw("<li>fourth</li>") %>");
list.append("<%= raw escape_javascript("<li>fifth</li>") %>");
list.append("<%= escape_javascript("<li>sixth</li>") %>");
list.append("<%= "<li>seventh</li>".html_safe %>");
list.append("<%= raw("<li>eigth</li>").html_safe %>");
list.append(unescape("<li>9th</li>"));
list.append(unescape("<%= raw("<li>10th</li>") %>"));
list.append(unescape(unescape("<li>11th</li>")));

И это то, что я добавляю в список (обратите внимание, что это скопировано прямо со страницы HTML, не источникстраницы):

<li>first</li>&lt;li&gt;second&lt;/li&gt;<li>third</li><li>fourth</li><li>fifth</li>&lt;li&gt;sixth&lt;/li&gt;<li>seventh</li><li>eigth</li><li>9th</li><li>10th</li><li>11th</li>

Как мне сделать так, чтобы страница отображала ее как HTML?

Спасибо!

Примечание: я в процессе обновления моего приложения с Rails 2 до Rails 3, и это то, с чем я столкнулся при обновлении.В Rails 2 он отлично работал , поэтому я считаю, что это проблема js.erb, а не проблема JavaScript.

Ответы [ 2 ]

0 голосов
/ 29 августа 2012

Попробуйте это ...

list.append("<li>third</li>");

ИЛИ, если вы визуализируете частичный

append("<%= escape_javascript(render :partial => "show_new_pages")%>");
0 голосов
/ 05 ноября 2010

Чтобы вы поняли этот ответ, прочитайте комментарии к моему вопросу. Это объясняет, что я использовал ajaxForm.

Короче говоря, я думаю, что MIME-тип ответа, возвращаемый Rails 3, не совпадает с Rails 2. Я подозреваю, что это ответ, потому что, пока Googling для решений, я нашел гем remotipart . Этот драгоценный камень помогает разработчикам сделать загрузку файлов с Rails 3 «тривиальной».

Я заметил, что инструкции в состоянии README, чтобы обернуть javascript в блок remotipart_response. Глядя на строку 3 файла remotipart.rb Я вижу, что тип mime изменен на HTML .

И вот, я снова применил драгоценный камень и все работает.

...