Ruby on rails - 如何在没有javascript的情况下删除



我正在尝试让我的应用程序在没有javascript的情况下使用DELETE操作。

只要我的应用程序/视图/布局/应用程序.html.haml 文件包含以下内容,evrything 就可以工作:

!!! 5
%html
  %head
    %title My application
    = stylesheet_link_tag    'screen', :media => 'screen, print, projection'
    /[if IE]
      // CSS for IE
    = javascript_include_tag 'application'
    = csrf_meta_tags
  %body
    ...

如果我删除= javascript_include_tag 'application'指令。我不能再删除任何记录。相反,Rails正在执行SHOW操作。

知道吗?

编写 HTML 表单时仅支持两种方法是 postget 。如果要使用 deleteput 方法,则必须使用 AJAX。

这就是为什么大多数网站使用纯帖子请求并使用特殊 URL 的原因。

POST /some-object/delete/

POST /some-object/?action=delete

即使是最新的HTML5草案也不允许除postget以外的任何其他方法:http://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-method

Rails 提供了一个用于执行putdelete请求的填充代码。我发现这很麻烦,特别是因为当JavaScript被禁用时,代码会做一些完全不同的事情。

Ryan Bates 在这个问题上做了一个很好的 RailsCasts 插曲:没有 JavaScript 的破坏。

他只是建议添加一个额外的GET成员路由,当JS被禁用时,这将导致相同的控制器操作。

相关内容

  • 没有找到相关文章

最新更新