Rails Project не обрабатывает запрос через AJAX - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть другой проект rails, в котором я пытаюсь обновить некоторые элементы управления формой для работы над AJAX вместо HTML. Но мой контроллер продолжает обрабатывать его как HTML вместо JS, и я не уверен, почему.

Ссылка, которую я пытаюсь сделать удаленной, в моем users / index.html.erb:

<%= link_to 'Disable', disable_user_path(user), :confirm => 'Are you sure?',
:method => :put, :remote => true %>

Представлено как:

<a href="/users/1/disable" data-confirm="Are you sure?" data-method="put"
data-remote="true" rel="nofollow">Disable</a>

Контроллер моих пользователей:

def disable
  @user = User.find(params[:id])
  if @user.update_attribute(:enabled, false)
    respond_to do |format|
      format.html { redirect_to root_path, :flash => { :success => "Disabled." }}
      format.js {}
    end
  else
    redirect_to root_path, :flash => { :error => @user.errors.full_messages }
  end
end

Мой включает в application.html.erb:

<%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "//ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js", "jquery.rails.js", "application" %>

Я думаю, что вытащил третий и четвертый файлы из стандартного места, но если они, возможно, виновник, я могу заглянуть в них или отыскать дополнительную информацию о них.

Когда я проверяю его, он не подсказывает мне "Вы уверены?" и он отвечает перенаправлением и флэш-сообщением «Отключено», а журналы сервера подтверждают, что он обрабатывается как html.

Запущен GET "/ users / 1 / disable" для 127.0.0.1 в 2012-02-11 17:17:31 -0200 Обработка UsersController # отключить как HTML

Ответы [ 3 ]

2 голосов
/ 12 февраля 2012

Возможно, вам все равно придется включить ненавязчивый адаптер javascript , если вы этого еще не сделали.

0 голосов
/ 13 февраля 2012

В итоге проблема заключалась в том, что мои включения не захватывали все файлы, которые, по-видимому, были необходимы. Я взорвал свой каталог javascripts, установил гем с нуля, следуя инструкциям в readme, и изменил мое включение на следующее:

<%= javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js", :defaults %>
0 голосов
/ 12 февраля 2012

Похоже, что jQuery не загружается.

Проверьте ваш тег включения, в частности путь к ресурсу ...

 <%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/....." %>

Большинство браузеров интерпретируют //... как локальный ресурс, как локальный для браузера.

Вставьте URL в браузер и посмотрите, будет ли он загружаться. Могу поспорить, что он вернется к схеме file://, а затем пожалуется, что не найден (на вашей локальной машине).

Либо добавьте туда схему http://, либо избавьтесь от двойной косой черты.

 <%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/....." %>
   # or...
 <%= javascript_include_tag "ajax.googleapis.com/ajax/libs/....." %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...