422用"密码返回不能为空白" Rails 4.2

时间:2015-01-10 07:29:06

标签: ruby-on-rails rspec ruby-on-rails-4.2

我的用户有一个控制器:

class API::V1::UsersController < ApplicationController
  respond_to :json

  def create
    @user = User.create(user_params)
    respond_with(:api, :v1, @user)
  end
end`

我正在使用响应者宝石。

当我运行RSpec测试时,出现422错误。这是失败的测试:

describe "POST create" do
  it "should create a user" do
    post :create, user: FactoryGirl.build(:user).attributes, format: :json
    expect(response.status).to eq(201)
  end
end
  • 我在我的用户模型上使用has_secure_password。
  • 我的user_params(强参数)
  • 中有密码和password_confirmation
  • 我的工厂有匹配的密码和密码_确认
FactoryGirl.define do
  factory :user do
    first_name Faker::Name.first_name
    last_name Faker::Name.last_name
    email Faker::Internet.safe_email
    password "123456789"
    password_confirmation "123456789"
    date_of_birth 25.years.ago
  end
end

我缺少或应该寻找什么?

1 个答案:

答案 0 :(得分:0)

您可能需要在spec / support / rails_helper.rb

中设置设计映射
@request.env["devise.mapping"] = Devise.mappings[:admin]

devise wiki

了解详情