6

我正在使用 Ryan Bates 的 Rails Cast on Wicked Wizard Forms 创建一个多步骤表单。我没有 current_user定义方法(不使用身份验证 gem) - 所以,我试图在 -user.id期间传递参数redirect_to- 不幸的是,我似乎无法让它工作。任何帮助表示赞赏!

我的用户控制器create方法

  def create
    @user = User.new(params[:user])
    respond_to do |format|
      if @user.save
        format.html { redirect_to controller: 'user_steps', id: 'user.id' }
        #format.html { redirect_to @user, notice: 'User was successfully created.' }#
        format.json { render json: @user, status: :created, location: @user }
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

user_steps我要重定向到的控制器:

class UserStepsController < ApplicationController
    include Wicked::Wizard
    steps :gender, :items, :brands, :final

    def show
        render_wizard
    end 
end
4

1 回答 1

4

理想情况下,您应该将其作为参数传递,redirect_to如果您使用正确的路由路径,该方法将为您执行此操作。

例子:

redirect_to(user_steps_path(@user))

在您的情况下,如果您没有命名路线,您可以这样做:

redirect_to(controller: 'user_steps', id: @user.to_param)

在 URL 中,建议使用该to_param方法。id用于数据库查询。

您传入的内容实际上是'user.id'作为参数。它不会被评估。

于 2012-09-07T03:11:21.447 回答