我正在尝试在Rails 4.1.6中创建用户注册表单。我一直收到'密码不能为空'的错误。我可以看到password和password_confirmation都在params哈希中,但不在params [:user]子哈希中。我无法弄清楚为什么我的生活。任何帮助将不胜感激。
用户模型:
class User < ActiveRecord::Base
belongs_to :company
has_secure_password
end
用户控制器:
class UsersController < ApplicationController
respond_to :json
def index
@users = User.all
respond_with(@users)
end
def create
@user = User.new(user_params)
@user.save
respond_with(@user)
end
private
def user_params
params.require(:user).permit(:given_name, :family_name, :email, :password, :password_confirmation)
end
end
答案 0 :(得分:2)
听起来您的参数没有正确发送到服务器。
password
应以user[password]
的形式发送,password_confirmation
应以user[password_confirmation]
的形式发送。
请参阅hash and array parameters的文档。
或者,将wrap_parameters
添加到控制器会将参数包装到嵌套哈希中。
wrap_parameters :user, include: [:given_name, :family_name, :email, :password, :password_confirmation]