Railscast Episode 275 - 我如何测试使用以下代码向用户发送密码重置:
def send_password_reset
generate_token(:password_reset_token)
....
... etc
end
def generate_token(column)
begin
self[column] = SecureRandom.urlsafe_base64
end while User.exists?(column => self[column])
end
我的问题是关于倒数第二行代码:end while User.exists?(column => self[column])
它可以正常工作,但是如果我换掉哈希火箭,就会导致我的规范失败,即end while User.exists?(column: self[column])
Failure/Error: user.send_password_reset
ActiveRecord::StatementInvalid:
SQLite3::SQLException: no such column: users.column: SELECT 1 FROM "users" WHERE "users"."column" = 'Y7JJV4VAKBbf77zKFVH7RQ' LIMIT 1
为什么会这样?在某些情况下您必须使用哈希火箭,并且对此有任何指导吗?