Есть пара вещей, которые вы можете пропустить.Я предполагаю, что вы используете jQuery, поскольку вы не указали в своем вопросе.
a) Убедитесь, что у вас установлен jQuery
b) Убедитесь, что вы установили Rails UJS (Ненавязчивый адаптер Javascript) либо вручную, либо с использованием гема (инструкции по Rails 3.1 также есть по этой ссылке): https://github.com/rails/jquery-ujs
c) Ваш link_to
должен сообщить адаптеру UJS Rails, что он должен захватыватьнажмите ссылку и отправьте запрос DELETE
через AJAX
<%= link_to 'delete', customer_comm_log_path(@customer, @comm_log), :remote => true, :method => :delete) %>
Так что в link_to
выше вы пропустили :remote => true
Rails захватит щелчок пользователя по этой ссылке изатем начните вызов jQuery $.ajax
на ваш сервер, который включает пару параметров, чтобы сообщить серверу Rails, что это удаленный запрос DELETE.
d) Если вы перенаправляете в контроллере с помощью нажатия пользователемДля такой удаленной ссылки вы должны указать Rails правильно обрабатывать перенаправления AJAX, поместив этот код в ApplicationController
.Если вы этого не сделаете, ссылка удалит запись, но затем будет просто сидеть там, а не перенаправлять.
# Allows redirecting for AJAX calls as well as normal calls
def redirect_to(options = {}, response_status = {})
if request.xhr?
render(:update) {|page| page.redirect_to(options)}
else
super(options, response_status)
end
end