user.rb 定义了 password 虚拟属性
user.html.erb 定义了虚拟属性表单
然而输出了一下 password= 那个方法没有执行....23333
请指教
#3 楼 @lance_zyb 在 rails 里这样创建的,应该不是这里的问题,因为现在是虚拟属性的赋值方法得不到执行,导致我的实际数据库属性无法赋值,从而 new 一个 user 时,除了 name 这个都有的属性,其他的实际数据库属性值都无法被赋值
@mexiqq 不晓得我是否理解错,你说的【虚拟属性的赋值方法无法执行】是指:user = User.new(user_params)
时,user.password #=> nil
如果是的话,输出 user_params 看下
def create
p user_params
@user = User.new(user_params)
...
end
如果理解错了,那我黔驴技穷了。
#8 楼 @lance_zyb 小哥,我再问一下,是这样的,如果我提交一个 user 的表单,user 这个 model 里有 password 和 password_cofirmation 然而 user 的数据库只有 hashed_password(由 password hash 计算的来),表单 post 之后提交到 user_controller 中的 new 或 create 方法,这时如果我想要让虚拟属性被赋值,是否 在.permit() 中要加虚拟属性的名字 即 .permit(:password)