【问题标题】:How to redirect after a successful AJAX form submission (Rails 3.2)成功提交 AJAX 表单后如何重定向 (Rails 3.2)
【发布时间】:2012-03-19 08:54:37
【问题描述】:

假设您有一个带有:remote => true 的编辑表单。你的控制器方法看起来像

 def update
    @article = Article.find(params[:id])

    respond_to do |format|
        if @article.update_attributes(params[:article])
            format.html { redirect_to @article}
            format.js { render :js => "window.location.replace('#{article_path(@article)}');"}
        else
            format.html { render :action => "edit" }
            # Render update.js.erb which replaces the body of the form
            format.js {}
        end
    end
end

在 Rails 3.2.1 中成功更新文章时重定向的最佳方法是什么?原始 JS 解决方案似乎有点低俗,但我确实喜欢它显然执行与 format.html 版本相同的功能这一事实。

我更喜欢不使用 RJS 的解决方案 (if that even works in Rails 3.2?)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2


    【解决方案1】:

    如何在视图文件本身上添加以下代码行

    #some_file.js.erb
    
    `window.location = redirect_path
    

    正如你在问题中提到的,你不喜欢 RJS,但我认为遵循这种模式比在控制器中编写 js 代码更好。

    【讨论】:

      【解决方案2】:

      您的 ajax 是否与模型(.php、.asp?)交互。在这种情况下,我首选的方法是在提交后在模型中创建成功/失败标准并直接从那里重定向。但不确定这在此应用程序中是否有意义?

      【讨论】:

        猜你喜欢
        • 2017-08-13
        • 2018-10-05
        • 1970-01-01
        • 2014-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-14
        相关资源
        最近更新 更多