0

このリンクがあります:

= 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 RedirectingJS with RailsRendering guideなどを調べましたが、役に立ちませんでした。

4

2 に答える 2

0

実際、これを読んだ後、私は正義を行い、公式に推奨されるこのケースの処理方法を投稿する必要があります. アクションは次のようになります。

def close
  @ticket  = Ticket.find(params[:id]).update_attribute(:status, "closed")
  head :ok
end

@auL5agoi、この答えに導いてくれてありがとう。

于 2014-12-06T21:48:29.567 に答える