0

ビューからボタンクリックでメソッドを呼び出す必要があります。以下は私の見解ではコードです:

<button type="submit" id="1"><%link_to "Done", {:controller => :summary, :action => :done_order}, {:method => :put }%></button>

このボタンをクリックすると、テーブルから行を削除し、更新された内容でビューを更新する必要があります。以下は私のコントローラーの done_order メソッドです

def done_order

        List.where(:tableno => @orders.first.tableno).delete_all
        redirect_to :action => :index

  end

ボタンをクリックすると、「リスト」テーブルからすべての行 (特定のテーブル番号) を削除し、インデックスにリダイレクトする必要があります。これにより、@orders のリスト テーブルから行が再びフェッチされ、ビューに渡されて入力されます。ルートファイルでは、次のように定義しました:put "summary/done_order"

問題は、クリックしても何も実行されないことです。button_to と link_to を使用して多くの提案された方法を試しましたが、毎回エラーが発生します。エラーがない場合は、何も実行されていません。これを実装するための私の理解にはいくつかの欠点があると思います.別の方法を試すには何かが欠けています. お知らせ下さい。ありがとう。

4

1 に答える 1

0

このためのルートを設定する必要があります。

# routes
resources summaries do
  put :done_order, on: :member
end

これにより、次のような記述が可能になります。

= link_to "Done", done_order_summaries_path(@summary), method: :put

オブジェクトの名前はわかりませんが、慣例に従っているようには見えません。その部分はあなた次第ですが、それが基本的なメカニズムです。もう 1 つの注意点は、ボタン タグ内にリンクを配置したことです。それが有効かどうかさえわかりません。あなたがそうする必要はありません。ボタンのように見えるようにリンクのスタイルを設定するか、代わりにボタンを使用するか、フォーム付きのボタンを使用するだけです。

于 2013-08-29T14:41:11.630 に答える