このリンクがあります:
= link_to "Close", close_ticket_path(:id => ticket.id), :onclick => $(this).closest('tr').remove()", :remote => true
ticket_controller#close へのルート:
def close
@ticket = Ticket.find(params[:id]).update_attribute(:status, "closed")
end
デフォルトでは、このアクションは にリダイレクトされviews/tickets/close
ます。このデフォルトのリダイレクトを無効にする方法は? カスタム リダイレクトを指定する方法は知っていますが、これは必要なものではありません。ビューはスクリプトによって管理され、データベースはアクションで変更されるため、これ以上のアクションは必要なく、ページを更新したくありません。render
問題のコンテンツが動的に読み込まれるため、どちらも機能しないため、基本的に何もしないことが必要です。
respond_to :js
空のclose.js.erb
ファイルをインクルードして作成する、またはこのファイルの上に移動するなどの回避策を見つけました:onclick
が、慣用的に実行したいと思います。実際のところ、リンクrespond_to :js
はアクション (ここには含まれていません) で必要に応じて機能しますが、コンソールは Missing template エラーをスローします。これはあまり良くありません。Rails Redirecting、JS with Rails、Rendering guideなどを調べましたが、役に立ちませんでした。