首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails教程Ch11 -没有路由匹配[POST] "/signup“

Rails教程Ch11 -没有路由匹配[POST] "/signup“
EN

Stack Overflow用户
提问于 2017-08-25 15:57:51
回答 2查看 994关注 0票数 1

我正在遵循栏杆第11章,刚刚完成清单11.24并创建了新用户,希望被重定向到root_url,并且愿意在服务器日志中查找帐户激活电子邮件(我猜是log/development.log)。

我以为我在routes.rb中做了一个错误,但是即使在复制、粘贴他的版本和重新启动服务器时,错误仍然存在。我也看不出在那里的“/注册”路线。routes.rb的最新版本是在清单11.1

怎么解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-25 16:04:54

没有POST /signup,所以错误是正确的。

如果仔细查看11.24,您将看到它发布到users_path,例如,对于第一个测试用例:

代码语言:javascript
复制
post users_path, params: { user: { name:  "",
                                   email: "user@invalid",
                                   password:              "foo",
                                   password_confirmation: "bar" } }

users_path在11.1中由resources :users定义,它指的是由UserController#create定义的POST /users,如11.23所示。

代码语言:javascript
复制
class UsersController < ApplicationController
  .
  .
  .
  def create
    @user = User.new(user_params)
    if @user.save
      UserMailer.account_activation(@user).deliver_now
      flash[:info] = "Please check your email to activate your account."
      redirect_to root_url
    else
      render 'new'
    end
  end
  .
  .
  .
end
票数 1
EN

Stack Overflow用户

发布于 2017-08-25 16:04:34

如您所见,您的/signup只有一个get路径(这是为了为用户输入他们的信息提供表单)。你错过的路线是

代码语言:javascript
复制
post    '/signup',  to: 'users#create'

因为您在create中创建了一个UsersController操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45885303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档