【发布时间】:2017-04-26 13:21:27
【问题描述】:
我有一个名为 User 的模型,它具有 first_name、last_name 和 password 属性。它正在使用设计。现在我想要另一个名为 Receptionist 的模型,它共享同一个用户表。用户可以添加接待员。
这是我的代码
class Receptionist < ApplicationRecord
attr_accessor :password
attr_accessor :password_confirmation
self.table_name = "users"
belongs_to :user, :class_name => 'User', :foreign_key => 'user_id' #source: :doctor
end
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :receptionists, :class_name => 'Receptionist', :foreign_key => 'user_id'
accepts_nested_attributes_for :receptionists, allow_destroy: true
end
在更新方法中——我有这个
user = User.new(get_params)
user.save
def get_params
params.require(:user).permit(:first_name, :last_name,
receptionists_attributes: [:first_name, :last_name, :email, :password, :password_confirmation, :_destroy]
)
end
这里是api调用
{
"auth_token": "TMERW-fhNroA9La9iUSX",
"user": {
"receptionists_attributes": {
"0": {
"first_name": "reception 1",
"last_name": "g",
"email": "xx@gmail.com",
"password": "xxxxx",
"password_confirmation": "xxxx"
}
}
}
}
现在接收者的记录正在被保存,除了密码。密码被存储为零。谁能告诉我哪里出错了
【问题讨论】:
-
删除
attr_accessor :password和attr_accessor :password_confirmation -
然后出现未知属性密码错误
-
那么密码不在数据库中
-
user表通常没有password列,因为您永远不应该以明文形式存储密码 -
好吧,你是对的..那么密码存储在哪里?
标签: ruby-on-rails devise