2009-06-28 40 views
0

我有這樣一個模型......我應該如何處理不符合請求參數的模型屬性?

Receipt 
------- 
amount:int # => An amount of money stored as cents. 

但我有這些領域的看法...

amount_dollars 
amount_cents 

所以質量分配也不會在那裏工作。

處理這種情況的標準方法是什麼?你在哪裏把代碼轉換成一定數量的分值?

回答

1

爲amount_dollars和amount_cents添加attr_accessors。使用before_save回調來更新金額。

+0

謝謝,這很好。 – Ethan 2009-07-01 23:42:18

0

您可以爲視圖中的每個字段定義一個所謂的虛擬屬性。

def amount_dollars=(value) 
    ... 
end 

def amount_cents=(value) 
    ... 
end 

這些處理來自提交表單的值。在每種方法中,都可以適當地修改模型的金額屬性。

+0

這是如何工作的?如果您在不知道美分應該是多少的情況下調用amount_dollars =(value),那麼您將錯誤地設置金額。 – Ethan 2009-06-28 21:27:21

3

您可能正在尋找虛擬屬性?

有一個關於它的railscast。

您可以watch it here

還有text-based version of it以防你更喜歡它。

+0

+1絕對是虛擬屬性的好選擇。 – 2009-06-28 21:47:15

相關問題