gpt4 book ai didi

ruby-on-rails - Rails App Wicked 路由错误

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:12 25 4
gpt4 key购买 nike

我在试图解决这个路由错误时自杀了。

一些背景信息:我正在使用 Ryan Bates 的 Rails Cast on Wicked Wizard Forms 创建一个多步骤表单。我收到路由错误:

No route matches {:controller=>"user_steps", :action=>"show", :id=>nil}

显然,user.id 没有传递到后续 View - 有什么解决办法吗?

用户 Controller 创建:

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

用户步骤 Controller (用于 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 %>

rake 路线:

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

最佳答案

在你的 user_controller#create 方法中尝试改变

redirect_to user_steps_path(@user)

redirect_to user_steps_path(:gender)

此外,我认为您的路由文件中不需要这一行:

将“user_steps/gender”匹配到:“user_steps#gender”,通过:“post”

关于ruby-on-rails - Rails App Wicked 路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12322349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com