![](/img/trans.png)
[英]rspec controller ActiveModel::ForbiddenAttributesError
[英]Rspec-rails 4 error: ActiveModel::ForbiddenAttributesError
我有一個使用mongoid
作為orm在rails 4.1
運行的應用程序。 我創建了一個名為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
運行規范時,出現以下錯誤
失敗/錯誤:User.create!(param)ActiveModel :: ForbiddenAttributesError:ActiveModel :: ForbiddenAttributesError
我知道這與強大的參數有關,但無法弄清楚我在做什么錯。
從精美的手冊中 :
需要(鑰匙)
[...]返回給定
key
處的參數[...]
所以說param.require(:user)
完全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
控制器中的用法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.