第一个是我的数据库 users 表结构 第二个是我要存的数据 第三个是 rake db:seed 报错 求解,是我写错了吗?还是说不能同时加密两个字段?
password 之所以不需要在数据库中声明,是因为重写了 User#password= 方法,实际存储为 password_digest,而不是 password。你的问题应该是没有重写 User#paypassword= 方法。自己去看下 Rails 模型中使用的 has_secure_password 的实现就清楚了。
可以加密多个字段撒。报错信息已经告诉你了
unknown attribute paypassword.
你的数据库没有这个字段,要不就在 model 中 attr_accessor :paypassword。你要先看你用的是什么加密方法,ruby 提供了多种加密方法。你这里 用的是 bcrypt 用的是 has_secure_password 的加密方法,在 ActiveModel::SecurePassword module 中 默认创建了 password,password_confirmation。如果你用了 devise。devise 构造了 password 实例方法的,所以 User.create 中可以给 password 赋值,就好像 password 是你的字段一样,其实你数据库没这个字段。而 paypassword 是真的没有,所以就需要你自己来加上这个属性了。(看第一句话。。。厕所回来后发现大家都答了)