我正在尝试通过邮递员创建用户,如屏幕截图所示,但出现错误:
这是使用--api
选项创建的Rails应用。
user.rb
class User < ApplicationRecord
validates :email, uniqueness: true
validates_format_of :email, with: /@/
validates :password_digest, presence: true
has_secure_password
end
users_controller.rb
class Api::V1::UsersController < ApplicationController
# GET /users/1
def show
render json: User.find(params[:id])
end
# POST /users
def create
@user = User.new(user_params)
if @user.save
render json: @user, status: :created
else
render json: @user.errors, status: :unprocessable_entity
end
end
private
def user_params
params.require(:user).permit(:email, :password)
end
end
routes.rb
Rails.application.routes.draw do
namespace :api, defaults: { format: :json } do
namespace :v1 do
resources :users, only: [:show, :create]
end
end
end
您的user_params
方法需要嵌套在user
哈希中的属性。将响应更改为:
{
user: {
email: '...',
password: '...'
}
}