Sab*_*osh 5 ruby ruby-on-rails
我有一个用户模型.喜欢
class User < ActiveRecord::Base
attr_accessor :username :campaign_id
attr_accessible :name, :email, :username
end
Run Code Online (Sandbox Code Playgroud)
如果我获取一个用户记录,如
u = User.first
Run Code Online (Sandbox Code Playgroud)
它会回来
#<User id: 190, name: "sa", :email: "abc@gmail.com", username: "ab">
Run Code Online (Sandbox Code Playgroud)
所以问题是:有没有办法检查一个属性,例如'name'是attr_accessor还是attr_accessible?
如果我理解正确的话,该设备attr_accessor :password会将您的密码字段隐藏在数据库中。为了避免这个问题,你可以做类似的事情
def raw_password
self[:password]
end
def raw_password= (new_password)
self[:password] = new_password
end
Run Code Online (Sandbox Code Playgroud)
当然,这完全忽视了这样一个事实:将密码以明文形式存储在数据库中并不是很安全。Devise 为用户提供了足够的机制来管理自己的密码,因此您不应该将原始密码保留太长时间。
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |