Format.js будет отображать только часть, содержащую одну строку - PullRequest
0 голосов
/ 30 марта 2012

Rails 3.2.1: у меня есть следующий div, который вызывает партиал

<div id="weighin">
<%= render :partial => "my_weight/weighin" %>
</div>

Партиал содержит форму, которая отправляет ajax (то есть has: remote => true) в контроллер с:

respond_to do |format| 
   format.js
end

Файл .js.erb содержит одну строку:

$("#weighin").html("<%= render :partial => "my_weight/weighin1" %>"); 

Частичный файл _weighin1.html.erb содержит одну строку:

<p><%= @my_weight[1].weight %></p>

Thisработает, в том смысле, что оригинальный div заменяется значением поля @my_weight - так что фундаментальная структура работает нормально

Однако Rails больше не будет обрабатывать код в частичном - если я добавлю так многокак возврат каретки к концу этой одной строки, журнал сервера подтверждает все в порядке, но на странице не запускается никакой скрипт - т.е. ничего не меняется.

То же самое происходит, если я пытаюсь добавить больше html вчастичное, но поместите все в одну строку - это тоже не работает.

Как я могу вывести более одного короткого оператора в частичном?

1 Ответ

3 голосов
/ 30 марта 2012

ОК, я понял это:

$("#weighin").html("<%= escape_javascript(render :partial => "my_weight/weighin1") %>");

escape_javascript необходим

Что сбивает с толку, так это то, что в зависимости от того, что находится в отправляемом html (), это иногда будетработать без escape_javascript, приводя к ложному выводу ...: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...