Rails 3:redirect_to with:remote => true

nul*_*ull 6 ajax redirect ruby-on-rails-3

我有一个删除链接,可以进行远程调用:

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

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

def destroy
  @bookcase.destroy
  redirect_to current_user
end
Run Code Online (Sandbox Code Playgroud)

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

Lou*_*ers 15

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

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
Run Code Online (Sandbox Code Playgroud)


Leo*_*rea 8

我很确定你可以在redirect_to中指定格式

redirect_to current_user, format: 'js'