2012-03-13 24 views
3

我只花了很長時間試圖解決我的模型中的虛擬屬性問題。事實證明,我只是忘記將它添加到我的模型中的attr_accesible。當然,我應該早一點或更好地抓住它,應該首先將它添加到attr_accessible開始整個努力。爲attr_accessible /受保護的Rails 3配置設置

爲了避免這種情況再次發生,是否有一個配置設置可以標記爲在開發時拋出異常,如果我試圖在保護/不可訪問時批量分配某些內容並對其進行驗證?我知道我可以使用集config.active_record.whitelist_attributes = true要求白名單,但我的問題更多是基於個人屬性。

例如上面的代碼行並沒有警告我,如果我有一個模型attr_accessible:名稱然後後來添加:暱稱(虛擬或不),並嘗試大規模分配檢查存在=>真。我希望它警告我,我試圖通過質量分配來驗證受保護的屬性。

回答

6

Rails的3.2有一個配置選項,在這種情況下

config.active_record.mass_assignment_sanitizer = :strict

Rails 3.2 release notescommit in Rails

+2

對於Rails開發<3.2,可以使用沿着這個要點的東西提出一個ActiveModel::MassAssignmentSecurity::Error:HTTPS:/ /gist.github.com/2027920 – 2012-03-13 09:53:44

+0

rails 3.1確實是我所在的地方。謝謝。 – Yuri 2012-03-20 05:41:21

相關問題