3
紅寶石1.9.2p180,Rails的3.0.8,1.2.0 attr_encryptedattr_encrypted不保存到數據庫
所以,在我的模型,我有以下:
attr_encryptor :email, :key => "awesome_key"
而在數據庫中,我有一個名爲「encrypted_email」的文本列。
在控制檯中,一切都在內存中運行。 encrypted_email屬性使用加密版本和所有內容進行更新。但是當我去拯救它時,沒有任何反應。
雖然搞亂了它,但我發現模型的更改散列並不反映對encrypted_email的更改,即使我嘗試手動設置值。
我在這裏做錯了什麼或者是attr_encrypted破?有誰知道事情如何被添加到更改散列?是否有方法調用或者我可以添加attr_encrypted生成的setter方法,以便在哈希中顯示更改?
謝謝!
日誌顯示包含encrypted_email的更新語句嗎?我使用Rails 3.0.10和attr_encrypted 1.2.1,沒有任何問題。我有attr_encrypted:ssn,:key =>'whatever',:encode => true。 attr_encryptor應該是別名來做同樣的事情。 – 2012-11-16 19:58:02
@BrianDeterling謝謝。我忘了這個問題......我應該關閉它。 attr_encrypted中存在一個關於如何創建getter和setter的錯誤。結果,數據值沒有被標記爲已更改並且未保存到數據庫(因此日誌中的更新語句)。我在我的最後做了一個快速的猴子補丁來解決問題。我沒有把我的補丁提交給社區,因爲如果你知道我的意思,我不覺得它是「值得」的:-)在某些時候,Ruby技能更好的人提交了一個補丁並修復了它。 – brettish 2012-12-13 20:29:53
@brettish:你可以在GitHub或類似的東西上發佈你的補丁作爲Gist嗎? – 2013-07-19 15:19:13