【问题标题】:422 Returned with "password cannot be blank" Rails 4.2422返回“密码不能为空”Rails 4.2
【发布时间】:2015-03-08 13:28:03
【问题描述】:

我有一个控制器供我的用户使用:

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

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

我正在使用响应者 gem。

当我运行 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 中有密码和密码确认(强参数)
  • 我的工厂有匹配的密码和密码确认
FactoryGirl.define 做
  工厂:用户做
    first_name Faker::Name.first_name
    last_name Faker::Name.last_name
    电子邮件 Faker::Internet.safe_email
    密码“123456789”
    密码确认“123456789”
    date_of_birth 25.years.ago
  结尾
结束

我缺少什么或应该寻找什么?

【问题讨论】:

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


    【解决方案1】:

    您可能需要在 spec/support/rails_helper.rb 中设置设计映射

    @request.env["devise.mapping"] = Devise.mappings[:admin]
    

    devise wiki查看更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-21
      • 2015-02-02
      • 2017-12-07
      • 2014-09-06
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多