我正在自杀试图解决这个路由错误。
一些背景信息:我正在使用 Ryan Bates 的 Rails Cast on Wicked Wizard Forms 创建一个多步骤表单。我收到路由错误:
No route matches {:controller=>"user_steps", :action=>"show", :id=>nil}
显然,user.id
没有被传递到后续视图 - 任何想法如何解决这个问题?
用户控制器创建:
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
session[:user_id] = @user.id
format.html { redirect_to user_steps_path(@user) }
#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
用户步骤控制器(用于 Wicked)
class UserStepsController < ApplicationController
include Wicked::Wizard
steps :gender, :items, :brands, :final
def show
render_wizard
end
def update
@user.update_attributes(params[:user])
render_wizard @user
end
end
路线:
Store::Application.routes.draw do
resources :likes
resources :categories
resources :user_steps
match "user_steps/gender", to: "user_steps#gender", via: "post"
resources :users
users_steps/gender.html.erb
<%= form_for :user, url: wizard_path do |f| %>
<div class="container" align="center">
<div class="div2" align="center">
<h2 align="center"> You are a ...</h2>
<div class="container" align="center">
<div class="row" align="center">
<div class="span6">
<h9>Guy</h9>
<label for="user_gender_guy"><img src="http://i.imgur.com/bpIMo.png" class="new" width="200" height="500"></label>
<input checked="checked" id="user_gender_guy" name="user[gender]" type="radio" value="Guy" />
</div>
<div class="span6">
<h9>Girl</h9>
<label for="user_gender_girl"><img src="http://i.imgur.com/xpA1S.png" class="new" width="200" height="500"></label>
<input checked="checked" id="user_gender_girl" name="user[gender]" type="radio" value="Girl" />
</div>
</div>
</div>
</div>
</div>
<%= f.submit "Next" %>
<% end %>
耙路线:
user_steps GET /user_steps(.:format) user_steps#index
POST /user_steps(.:format) user_steps#create
new_user_step GET /user_steps/new(.:format) user_steps#new
edit_user_step GET /user_steps/:id/edit(.:format) user_steps#edit
user_step GET /user_steps/:id(.:format) user_steps#show
PUT /user_steps/:id(.:format) user_steps#update
DELETE /user_steps/:id(.:format) user_steps#destroy
user_steps_gender POST /user_steps/gender(.:format) user_steps#gender