更新后的条件重定向

时间:2012-01-20 15:58:13

标签: ruby-on-rails ruby-on-rails-3 forms redirect

我想在rails 3.1上的ruby中进行条件更新 根据您来自的位置,在更新后,将进行重定向。 将我的1个大表单拆分为单独的小表单,所以现在想法是重定向到正确的子表单。

例如,表格可以从以下地址提交:

  • 个人资料基础知识表格
  • 个人资料明细表

我唯一能想到的就是检查操作名称并使用它来重定向。但它非常丑陋和长代码,也没有完全工作。这样做的轨道是什么?

这是我的控制器更新操作:

def update

    @profile = Profile.find(params[:id])

    respond_to do |format|

     if @profile.update_attributes(params[:profile])
        format.html { redirect_to @profile, notice: 'Profile was successfully updated.' }
      else
        format.html {
          render :action => "edit_basics"
          #

        }
      end
    end
  end

1 个答案:

答案 0 :(得分:4)

为什么不将重定向位置作为表单中的hidden_​​field传递,然后根据需要设置每个表单:

redirect_to params[:redirect_location]

如果您不想在HTML中公开原始字符串,也可以使用步骤或其他内容执行此操作:

redirect_to location_for_step(params[:step])