我遇到了一个非常奇怪的 Ohm 问题,我无法跟踪和解决。欧姆版本是 2.0.1。
这是我的代码:
class User < Ohm::Model
attribute :username
attribute :password
index :username
def password= string
@attributes[:password] = BCrypt::Password.create(string) # Tried self.password = BCrypt::whatever too
end
end
[15] pry(main)> User.find(username: 'test').first.password
=> "$2a$10$j1.s4hmuyCm8RffaEvB8IejaYOiZXWXId1Ccf8S0K3uXduxmMzyUq"
[16] pry(main)> User.find(username: 'test').first.password
=> "$2a$10$/0UzWtVsF.xczf4.UUqrP.PqYHxKs8fkIWKHlVVQVUNPFubzmuCwO"
[17] pry(main)> User.find(username: 'test').first.password
=> "$2a$10$ajlc3BYMOFXYDmy1a112ieXhMm39KoR1wPdPMp4WwEnxb2E35ypvC"
[18] pry(main)> User.find(username: 'test').first.password
=> "$2a$10$TlW87Gpd4RKpPutWzkePqeQiGri2ah.txDda4o6Lki7Sk1vayY9Fm"
基本上我可以设置密码并使用 BCrypt 对其进行加密,但由于某些原因,每次我调用属性时密码都是不同的。我不知道这里发生了什么,有人可以帮助我吗?