2
在我的模型中,我有一個屬性「持續時間」(秒爲整數)但新/編輯視圖輸入:小時,分鐘,秒。我應該如何在模型中(attr_accessor:hours,:minutes,:seconds),然後如何將這些虛擬屬性轉換爲我的「持續時間」屬性,來自Java我有setter/getter on「持續時間」!如何轉換用戶輸入小時,分鐘,秒
在我的模型中,我有一個屬性「持續時間」(秒爲整數)但新/編輯視圖輸入:小時,分鐘,秒。我應該如何在模型中(attr_accessor:hours,:minutes,:seconds),然後如何將這些虛擬屬性轉換爲我的「持續時間」屬性,來自Java我有setter/getter on「持續時間」!如何轉換用戶輸入小時,分鐘,秒
您可以設置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之前調用過濾器,更新其值,然後繼續正確保存它。
模型中的參數,你確定... ...嗎? – nitecoder 2009-09-15 03:07:29
模型中的參數沒有意義! – railsuser 2009-09-15 03:17:16
你是對的,對不起,這些只是爲了控制器而已,而不是模型。我相應地調整了它。 – Yaraher 2009-09-15 12:24:42