繁体   English   中英

Ruby on Rails教程-第11章-集成测试示例出错

[英]Ruby on Rails Tutorial - Chapter 11 - getting error on integration test example

我正在尝试执行Ruby on Rails教程书中的第11章,并且当我尝试执行清单11.33中的集成测试时,我遇到两个错误,都说“参数缺失或值空:用户”。 然后在用户控制器定义中列出了两行,第一行引用了user_params,第二行引用了控制器中的create动作。 我查看了其他一些问题,并根据答案尝试删除了user_params定义的require(:user)部分,这导致集成测试从出现两个错误变为失败。 但是我不想从user_params定义中删除require(:user)。 有谁知道为什么我会收到此错误? 这是创建错误的测试部分:

test "valid signup information with account activation" do
get signup_path

assert_difference 'User.count', 1 do
  post users_path, params: { user: { name: "Example User",
      email: "user@example.com",
      password: "password",
      password_confirmation: "password" } }
end

这是除此测试外有效的user_params的定义

def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end

我发现了问题。 我将我正在通过野生动物园在线书在线阅读的教程书的版本与免费的在线版本进行了比较,发现在该版本中,他们使用的是:

post users_path, user: { name: "Example User",

在用户:{}中删除了参数:{},此更改使错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM