6

我有一个远程调用的删除链接:

<%= link_to image_tag("trash.png"), [current_user, bookcase], method:  :delete, :remote => true, confirm: "You sure?", title:   bookcase.image %>

在我的控制器中,我通过重定向结束删除功能:

def destroy
  @bookcase.destroy
  redirect_to current_user
end

这可行,除了它将用户重定向到“user/show.html.erb”文件而不是“user/show.js.erb”文件。如何重定向用户,指定使用哪种格式?

4

4 回答 4

16

不知道这是否回答了这个特定问题,但有些人可能会发现以下内容有帮助:

module AjaxHelper
  def ajax_redirect_to(redirect_uri)
    { js: "window.location.replace('#{redirect_uri}');" }
  end
end

class SomeController < ApplicationController
  include AjaxHelper

  def some_action
    respond_to do |format|
      format.js { render ajax_redirect_to(some_path) }
    end
  end
end
于 2014-05-02T16:38:31.620 回答
8

我很确定您可以像这样在 redirect_to 中指定格式

redirect_to current_user, format: 'js'

于 2012-10-30T20:34:14.427 回答
2

我很确定这段代码会起作用。

render :js => "window.location = '/jobs/index'

您可以在操作 /controller_name/action name/ 中使用此代码

于 2015-03-07T13:35:25.583 回答
0

我尝试了接受的答案,但对我不起作用(RAILS 6),对我有用的是:

format.js { redirect_to current_user }

希望这对某人有帮助

于 2019-06-20T18:52:59.077 回答