我在rails 4.1中使用mongoid作为orm运行一个应用程序。我创建了一个名为User的模型,它有一个属性email。我正在使用RSpec进行测试。我创建了以下规范
require 'spec_helper'
describe 'User' do
before(:each) do
@attr = {
user: {
email: "rahul@gmail.com"
}
}
end
it "should create a valid User instance" do
param = ActionController::Parameters.new(@attr)
param.require(:user).permit!
User.create!(param)
end
end当我运行规范时,我会得到以下错误
ActiveModel::ForbiddenAttributesError失败/错误: User.create!(param) ActiveModel::ForbiddenAttributesError: User.create
我知道这与强参数有关,但我不知道我做错了什么。
发布于 2014-05-18 20:00:24
来自精细手册
要求(键) ..。返回给定
key处的参数.
所以说param.require(:user)对param没有任何作用,它只是做一个存在性检查并返回param[:user]。
我想你想说的更像这样:
param = ActionController::Parameters.new(@attr)
User.create!(param.require(:user).permit!)这一用法将与通常的做法相匹配:
def some_controller_method
@user = User.create(user_param)
end
def user_param
param.require(:user).permit!
end控制器中的用法。
https://stackoverflow.com/questions/23725983
复制相似问题