abh*_*hir 6 ruby controller ruby-on-rails
我正在使用Ryan Bates的Rails Cast在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
Run Code Online (Sandbox Code Playgroud)
user_steps我正在重定向的控制器:
class UserStepsController < ApplicationController
include Wicked::Wizard
steps :gender, :items, :brands, :final
def show
render_wizard
end
end
Run Code Online (Sandbox Code Playgroud)
理想情况下,您应该将其作为参数传递,redirect_to如果您使用正确的路由路径,该方法将为您执行此操作。
例子:
redirect_to(user_steps_path(@user))
Run Code Online (Sandbox Code Playgroud)
在您的情况下,如果您没有命名路线,您可以这样做:
redirect_to(controller: 'user_steps', id: @user.to_param)
Run Code Online (Sandbox Code Playgroud)
在 URL 中,建议使用该to_param方法。id用于数据库查询。
您传入的内容实际上是'user.id'作为参数。不会对其进行评价。