我在模型創建中失敗了一個非空條件,我想,謝謝使用強參數從我的params散列中刪除東西。Rspec強參數剝離參數
Rspec的代碼:
it "creates a new Provider" do
expect {
post :create, {:admin_provider => {:name => "foo bar"}}, valid_session
}.to change(Provider, :count).by(1)
end
控制器代碼:
def create
@admin_provider = Provider.new(okay_params)
respond_to do |format|
...Render Views
end
end
def okay_params
params.permit(:admin_provider).permit(:name)
end
輸出:
Admin::ProvidersController POST create with valid params creates a new Provider
Failure/Error: post :create, {:admin_provider => {:name => "foo bar"}}, valid_session
ActiveRecord::StatementInvalid:
PG::NotNullViolation: ERROR: null value in column "name" violates not-null constraint
DETAIL: Failing row contains (225, null, null, null, t, null, null, null, null, null, null, null, null).
: INSERT INTO "providers" DEFAULT VALUES RETURNING "id"
發生了什麼事我PARAMS剝離出來的 「名」 參數?我試過它作爲一個符號和一個字符串。我試過它作爲let塊而不是硬編碼。沒有不同。每一次它似乎都在剝離我的參數。我錯過了什麼?
'params.require(:admin_provider).permit(:名稱)' – depa