Как я могу исправить эту проблему рендеринга jQuery Ajax в приложении Rails 2.3.8? - PullRequest
0 голосов
/ 17 ноября 2011

Я пытаюсь сделать каскадные зависимые поля выбора, используя jQuery. У меня есть следующее в файле с именем "get_description.js.erb", который вызывается просто отлично:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>

Я вижу в Firebug, что соответствующий ответ действительно возвращается, но на экране ничего не отображается. Вот точный ответ, как сообщается в Firebug, без ошибок:

$("#descriptiondiv .floater:first").html("<select id="person_description" name="person[description]"><option value="Employee">Employee</option></select>");

Этот ответ не отображается в браузере.

Однако, если я просто сделаю это:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("hello world");
<% end %>

тогда «Привет, мир» действительно появляется там, где я его ожидаю.

Почему мой блок выбора не отображается на экране, а "привет слово"?

1 Ответ

1 голос
/ 17 ноября 2011

Выглядит как проблема с цитированием, попробуйте добавить escape_javascript:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= escape_javascript f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>

Или просто j:

<% fields_for :person do |f| %>
    $("#descriptiondiv .floater:first").html("<%= j f.select :description, @person.descriptions.map_by_person_type %>");
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...