Rails 3 做了一些很酷的事情来使 Javascript 不引人注目,所以他们做了这样的事情:
= link_to "Logout", user_session_path, :method => :delete
..转换为
<a href="/logout" data-method="delete" rel="nofollow">Logout</a>
但这只是我想到的。当我关闭 javascript 时,该方法不再是 DELETE,而是按预期获取。那么是否有计划或有某种方法允许这些 data-
属性正常降级,以便该链接仍然是 DELETE 请求?
最佳答案
他们在 Rails 3 中使用这些 data-
属性所做的更改并不是关于优雅的降级,而是关于不引人注目的 JavaScript。
在 Rails 2 中,在链接上指定 :method => :delete
将生成一大堆内联 JavaScript,这些 JavaScript 将创建一个带有隐藏输入的表单,然后提交该表单。那时和现在是一样的:关闭 JavaScript,它默认为 GET 请求。因此,支持没有 JavaScript 的情况与以前相同。
一种选择是使用表单/按钮而不是链接,这样您就可以将该方法作为隐藏字段包含在内,就像 Rails 2 JavaScript 所做的那样。另一种选择是让 GET 版本将您带到一个中间页面,该页面又包含表单/按钮。
新方法的好处是它不引人注目。用于更改 HTTP 谓词的 JavaScript 存在于外部文件中,并使用 data-
属性来确定应将其附加到哪些元素。
关于ruby-on-rails - Rails 3's "data-method ='delete'“如何优雅降级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2809200/