2009-09-15 25 views
2

在我的模型中,我有一個屬性「持續時間」(秒爲整數)但新/編輯視圖輸入:小時,分鐘,秒。我應該如何在模型中(attr_accessor:hours,:minutes,:seconds),然後如何將這些虛擬屬性轉換爲我的「持續時間」屬性,來自Java我有setter/getter on「持續時間」!如何轉換用戶輸入小時,分鐘,秒

回答

6

您可以設置before_save過濾器來根據您的虛擬accesors的值(小時,分鐘和秒)來計算它的值。例如:

class Model << AR:Base 

    attr_accessor :hours, :minutes, :seconds 
    before_save :update_duration 

    def update_duration 
    duration = = hours*3600 + minutes*60 + secods 
    end 

end 

這有點粗糙,但應該給你一個關於它如何工作的想法。無論何時在模型上調用「save」方法(在創建或更新操作上),都會在訪問BD之前調用過濾器,更新其值,然後繼續正確保存它。

+0

模型中的參數,你確定... ...嗎? – nitecoder 2009-09-15 03:07:29

+0

模型中的參數沒有意義! – railsuser 2009-09-15 03:17:16

+0

你是對的,對不起,這些只是爲了控制器而已,而不是模型。我相應地調整了它。 – Yaraher 2009-09-15 12:24:42

相關問題