Rails新手在这里(试图回答这些问题)
我正在使用Ryan Bates的Rails Cast on Wicked Wizard Forms来创建一个多步骤表单。我得到了一个"No route matches[POST]"/user_steps/gender(其中gender是user_steps控制器下的视图)。
有什么想法吗?
routes.rb:
Store::Application.routes.draw do
resources :likes
resources :categories
resources :users
resources :user_steps
root to: 'static_pages#home'
user_step控制器:
class UserStepsController < ApplicationController
include Wicked::Wizard
steps :gender, :items, :brands, :final
def show
render_wizard
end
def update
@user.attributes = params[:user]
render_wizard
end
end
当您定义一个新方法时,rails将默认为该方法的get请求。为了使其成为一种后处理方法,请尝试添加
match "user_steps/gender", to: "user_steps#gender", via: "post"
查看此路线参考
我正在寻找rails向导解决方案,当我遇到同样的问题时,我正在处理"#346 Wizard Forms with Wicked"railscas。
正如@Klipfel所建议的那样,添加一条路线是一个很好的"轨道"答案,但对于邪恶的宝石来说,这不是正确的方法。如果您添加了一个指向另一个控制器方法的路由,那么您就是在邪恶框架之外路由请求。
我通过为http方法指定put来解决这个问题。在#346带有Wicked railscast的向导表单的情况下,它看起来像这样:
<%= form_for @user, url: wizard_path, method: :put do |f| %>
我不知道为什么它在railscast 中工作