Ответ от form_for удаленного не выполнен - PullRequest
0 голосов
/ 16 мая 2011

Я искал разные ресурсы для решения этой проблемы, но не могу понять, в чем проблема.

Я пытаюсь выполнить обработку формы ajax с помощью jquery.

Мой application.html.erb содержит следующие строки

    <%= javascript_include_tag "http://code.jquery.com/jquery-1.6.1.js"%>
    <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js" %>
    <%= javascript_include_tag "jquery.rails.js" %> 

jquery.rails.js содержит последние из https://github.com/rails/jquery-ujs`

У меня типичный вызов form_for: <%=form_for @data, :remote => true do |f| %> Который запускает обработчик создания моего контроллера, так как это вызов ajax, у меня есть соответствующий create.js.erb, который содержит jquery, такой как $("#data_table").html("something")

Весь процесс работает почти правильно: вызываемый ajax выполнен правильно, и когда я смотрю на инструмент разработчика браузера, я вижу, что он возвращает правильный ресурс XHR, содержащий $("#data_table").html("something"), но то, что он возвращает, не оценивается браузер.

Я пытался отлаживать различные сценарии, но я не мог получить ничего значимого, но я мог видеть, что возврат данных обрабатывается моими rails.jquery.js и jquery.js сценариями.

Я нашел разную информацию и перепробовал все безуспешно. Это должно быть достаточно тривиально, но я не могу понять это.

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Я получил его на работу, но мне трудно представить, что это правильный способ сделать это, но после многих часов проб и ошибок (и даже чтения кода jquery.js), это единственный, который закончился до работы. Я все еще надеюсь на лучший ответ.

Я добавил привязку к форме для выполнения при ajax:complete событии. Теперь моя страница содержит следующий javascript:

$(document).ready(
   function(){
      $('#form_id').bind('ajax:complete',function(evt,xhr,status){
          eval(xhr.responseText);
      });
 )

Так что теперь, когда вызов ajax завершен, он будет оценивать xhr.responseText.

0 голосов
/ 29 июля 2011

Ответ на этот вопрос может быть здесь Ответ Rails 3 ajax не выполняется

Ключом для меня было отключение макета путем добавления

layout false

в контроллер.Без этого ответ ajax содержал также все, что у меня было в / views / layouts / application

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