Rails active_resource требует, чтобы JS делал удаление по link_to?

1

Когда я использую link_to: method = > : delete, то, что создал рельсы, является кликом javascript, что не очень приятно, если вы сталкиваетесь с ситуацией, когда ваш клиент просто отключил javascript. Мне это кажется плохой идеей. Есть ли шанс обойти это?

Теги:
activeresource

3 ответа

1

Ваш единственный вариант - сделать это вручную.

Предполагая, что объект, который вы хотите удалить, находится в @item, просто выполните следующее:

form_for @item, :method => :delete do |f|
  f.submit "Delete this item"
end

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

1

То, что он генерирует, является формой с методом = "удалить", лучше всего сделать форму самостоятельно, единственное, что кнопка отправки не будет ссылкой, а кнопкой.

Вы не должны, каким бы то ни было образом, пытаться сделать это с помощью базового <a href="">, потому что подрывное действие (создание, обновление, удаление) не должно выполняться с помощью запроса GET.

0

Если вам нужно работать без JavaScript, используйте button_to:

<%= button_to 'Delete', @item, :method => :delete %>

Из документа:

Создает форму, содержащую одну кнопку, которая отправляет URL-адрес созданный набором + вариантов+. Это самый безопасный метод для убедитесь, что ссылки, которые вызывают изменения в ваших данных, не вызываются поиск ботов или ускорителей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню