2
Railscast Episode 275 - How I test使用下面的代碼來重置密碼發送到用戶:紅寶石哈希火箭VS 1.9語法
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
這究竟是爲什麼會失敗?有沒有必要使用散列火箭的情況,並且有沒有關於這方面的指導?
謝謝,這解釋清楚,將在10分鐘內接受 – stephenmurdoch
不只是任何符號,只有符號是有效的標籤。例如':$ set',需要hashrocket和其他許多有效的符號一樣。 http://stackoverflow.com/a/10004344/479863 –