0

JavaScript を使用せずにアプリケーションを DELETE アクションで動作させようとしています。

app/view/layout/application.html.haml ファイルに次のものが含まれている限り、すべてが機能します。

!!! 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 アクションを実行しています。

何か案が ?

4

2 に答える 2

3

HTMLフォームを作成するときにサポートされるメソッドはpost、とだけgetです。deleteまたはメソッドを使用する場合は、putAJAXを使用する必要があります。

これが、ほとんどのWebサイトがプレーンなPOSTリクエストを使用し、特別なURLを使用する理由です。例えば

POST /some-object/delete/

また

POST /some-object/?action=delete

post最新のHTML5ドラフトでさえ、または以外の方法を許可していませんgethttp ://www.w3.org/html/wg/drafts/html/master/forms.html#attr-fs-method

Railsは、実行と要求のためのポリフィルを提供します。JavaScriptが無効になっている場合、コードがまったく異なることを行うため、これは特に厄介です。putdelete

于 2013-01-29T12:13:36.657 に答える
1

Ryan Bates は、この問題に関する RailsCasts の素晴らしいエピソードを作成しました: Destroy without JavaScript

彼は単純に、JS が無効になっているときに同じコントローラー アクションにつながる追加の GET メンバー ルートを追加することを提案しています。

于 2013-01-29T12:21:10.007 に答える