Выполнение операций удаления AJAX в рельсах без перерыва - PullRequest
6 голосов
/ 02 октября 2008

Как вы выполняете операции удаления и помещения в рельсы? Я прочитал документацию и подумал, что все делаю правильно, но не могу заставить ее работать.

Например, если бы я хотел удалить сотрудника, я бы создал контроллер с именем «EmployeesController» и создал метод уничтожения для выполнения удаления.

Затем я вошел в файл route.rb и ввел map.resources :employees, который дает вам доступ к вспомогательным функциям URL.

В любом месте, из которого я хочу вызвать операцию Ajax, у меня должна быть строка вроде:

<%= link_to_remote "Delete", employee_path(@employee), :method => :delete %>

Когда я нажимаю на ссылку, она все еще отправляет операцию POST, поэтому ничего не делает.

Что я пропускаю или делаю неправильно?

Ответы [ 4 ]

6 голосов
/ 02 октября 2008

Попробуйте

:url => employee_url(@employee)

IIRC, * _path - это именованный маршрут, сгенерированный директивой: resource, которая включает метод, перезаписывая таким образом ваш: method =>: delete

4 голосов
/ 02 октября 2008

Из моего кода:

<%= link_to_remote "Delete", :url => post_url(post), :method => :delete %>
0 голосов
/ 21 августа 2010

Если у вашей проблемы нет запроса AJAX, вы должны добавить правильные теги javascript

0 голосов
/ 04 октября 2008

Просто добавлю несколько дополнительных деталей: помогло :url => employee_url(@employee) (из принятого ответа). Другая часть, которая меня сбивала с толку, заключалась в том, что я ожидал HTTP-запрос на удаление, но я продолжал получать запросы POST с параметром "_method" (автоматически добавляемым rails), для которого было установлено удаление.

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

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