我正在关注railstutorial第11章。
刚刚完成Listing 11.24并创建了新用户,期望被重定向到root_url并愿意在服务器日志中查找帐户激活电子邮件(我猜是log/development.log
)。
我以为我在routes.rb
中输错了,但即使我复制粘贴他的版本并重新启动服务器,错误仍然存在。我也没有看到'/ signup'的路线。最新版本的routes.rb
位于Listing 11.1
如何解决这个问题?
答案 0 :(得分:1)
没有POST /signup
,因此错误是正确的。
如果仔细查看11.24,您会看到它发布到users_path
,例如对于第一个测试用例:
post users_path, params: { user: { name: "",
email: "user@invalid",
password: "foo",
password_confirmation: "bar" } }
users_path
由resources :users
在11.1中定义,引用由POST /users
定义的UserController#create
,如11.23所示。
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 :(得分:0)
正如您所看到的,您只有一个获取/注册的获取路径(这意味着为用户提供输入其信息的表单。您缺少的路线是
post '/signup', to: 'users#create'
因为您在create
内创建了UsersController
操作。