Направляющие 3 делают некоторый интересный материал для создания JavaScript незаметным, таким образом, они сделали вещи как это:
= link_to "Logout", user_session_path, :method => :delete
.. преобразовывает в
<a href="/logout" data-method="delete" rel="nofollow">Logout</a>
Но это просто произошло со мной.. Когда я выключаю JavaScript, метод не, больше УДАЛЯЮТ, это, ДОБИРАЮТСЯ как ожидалось. Так есть ли планы к, или есть ли некоторый путь к, позвольте их data-
атрибуты для ухудшения корректно, так, чтобы ссылка все еще была УДАЛИТЬ запросом?
Изменение, которое они сделали в Rails 3 с этими data-
атрибутами, было сделано не для изящной деградации, а для ненавязчивого JavaScript.
В Rails 2 указание :method => :delete
на ссылке генерировало целую кучу встроенного JavaScript, который создавал форму со скрытым входом, а затем отправлял форму. Это было так же, как и сейчас: отключите JavaScript, и по умолчанию будет отправлен GET-запрос. Таким образом, поддержка в случае отсутствия JavaScript такая же, как и раньше.
Один из вариантов - использовать форму/кнопку вместо ссылки, чтобы можно было включить метод как скрытое поле, подобно тому, как это делает JavaScript в Rails 2. Другой вариант заключается в том, чтобы версия GET вела вас на промежуточную страницу, которая, в свою очередь, содержит форму/кнопку.
Преимущество нового подхода в том, что он ненавязчив. JavaScript для изменения HTTP-глагола находится во внешнем файле и использует атрибуты data-
для определения элементов, к которым он должен быть присоединен.
Единственный шанс, который у вас есть, - определить форму. Ссылка не может быть POST с _method = "delete" без Javascript или по форме.