Я использую Rails с jQuery и работаю над страницей для простого сайта, который печатает каждую запись в таблице. Единственное редактируемое поле для каждой записи - это флажок. Моя цель состоит в том, чтобы каждый раз, когда флажок изменялся, запрос ajax обновляет этот логический атрибут для записи (т. Е. Нет кнопки отправки).
Код моего просмотра:
<td>
<% form_remote_tag :url => admin_update_path, :html => { :id => "form#{lead.id}" } do %>
<%= hidden_field :lead, :id, :value => lead.id %>
<%= check_box :lead, :contacted, :id => "checkbox"+lead.id.to_s, :checked => lead.contacted, :onchange => "$('#form#{lead.id}').submit();" %>
<% end %>
</td>
В моем route.rb admin_update_path определяется как
map.admin_update 'update', :controller => "admin", :action => "update", :method => :post
У меня также есть шаблон RJS для рендеринга обновления. Содержимое этого файла в настоящее время только для тестирования (я просто хотел посмотреть, сработает ли это, это не будет основной функцией при успешном сохранении) ...
page << "$('#checkbox#{@lead.id}').hide();"
При нажатии запрос ajax успешно отправляется с правильными параметрами, и действие на контроллере может извлечь запись и обновить ее просто отлично. Проблема в том, что он не отправляет обратно JS; он изменяет страницу в браузере и отображает сгенерированный Javascript в виде обычного текста, а не выполняет его на месте.
Rails делает кое-что закулисное, чтобы выяснить, является ли входящий запрос вызовом ajax, и я не могу понять, почему он интерпретирует входящий запрос как обычный веб-запрос, а не как запрос ajax.
Возможно, мне здесь не хватает чего-то очень простого, но я как бы обожгла себя, глядя так, что подумала, что я бы попросила еще пару глаз. Заранее спасибо за любую информацию!