加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 4控制器测试“Undefined Method Permit

发布时间:2020-12-16 21:25:55 所属栏目:百科 来源:网络整理
导读:我有一个基于Rails 4文档的简单控制器测试(使用Test :: Unit): test "should create user" do assert_difference('User.count') do post :create,user: users(:sample_user) end assert_redirected_to user_path(assigns(:user))end 而且,尽管实际用户被创
我有一个基于Rails 4文档的简单控制器测试(使用Test :: Unit):
test "should create user" do
  assert_difference('User.count') do
    post :create,user: users(:sample_user)
  end
  assert_redirected_to user_path(assigns(:user))
end

而且,尽管实际用户被创建得很好,但测试失败了,他说:

1) Error:
UsersControllerTest#test_should_create_user:
NoMethodError: undefined method permit' for "832959492":String
app/controllers/users_controller.rb:23:in
user_params’
app/controllers/users_controller.rb:8:in create'
test/controllers/users_controller_test.rb:11:in
block (2 levels) in ‘
test/controllers/users_controller_test.rb:10:in `block in ‘

由于某种原因,测试无法识别新的Rails 4许可方法.现在,我将user_params作为控制器中的私有方法.但是,我尝试将其移动到实际的创建操作并收到相同的错误.用户创建也是100%标准(完全没有任何疯狂 – 就像Rails文档一样).

有谁知道如何重写或以其他方式使这个测试通过?

解决方法

似乎正在POST到您的创建路由的数据只是一个字符串,而不是属性的哈希.用户(:sample_user)返回什么?它只是一个ID,还是一个没有正确序列化的ActiveRecord对象?如果它是AR,也许你需要发送用户(:sample_user).attributes作为有效载荷?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读