0
比方說,我有一個記錄類Person
與整數字段awesomeness
。如何攔截ActiveRecord對象的批量分配散列並對其進行過濾?
如果我撥打Person.new(:awesomeness => 5)
,它工作正常。
如果我按照預期撥打Person.new(:awesomeness => 'five')
,Rails會確定'five'
是一個整數並且失敗,所以它只是默認爲0
。我可以通過攔截散列並以某種方式處理數據來進行干預嗎?
ActiveRecord回調中最早的「事件」是before_save
,「five」已經成爲0
。
我明顯可以做這個控制器端,但這似乎是嚴格屬於模型作爲過濾器的東西。
感謝您的理由充分的論據。我的直覺是把這個模型放在DRY模型中,但我同意你對這種情況的高級評估。在`before_filter:preprocess_phone_number,:only => [:create,:update]`中寫入並不難。 – 2011-01-28 20:58:57