2015-06-26 86 views
0

我想從一個時間(這是在模型中不變)和日期(這是存儲在數據庫中的屬性)組成一個datetime對象。我該怎麼做?Ruby合併時間和日期datetime

類似的東西:

class Product < AR::Base 
    MANUFACTURE_TIME = '08:00' # Is there another way to better write just time? 

    def manufactured_at # method, which returns 
    # => 1 Jan 2012, 08:00, if self.manufacture_date == Date.new(2012, 1, 1) 
    # => 5 oct 2012, 08:00, if self.manufacture_date == Date.new(2012, 10, 5) 
    # => 23 Sep 2014, 08:00, if self.manufacture_date == Date.new(2014, 9, 23) 
    end 
end 

附:我不知道如何存儲這種情況下的時間常量...

回答

3

您可以使用DateTime.new構造一個新的DateTime並傳遞單個日期組件,如年和月。

class Product < AR::Base 
    MANUFACTURE_TIME = '08:00' 

    def manufactured_at 
    hour, minute = MANUFACTURE_TIME.split(':') 
    DateTime.new(manufacture_date.year, manufacture_date.month, manufacture_date.day, hour, minute) 
    end 
end 

可以存儲爲你想要的時間,即使是在一個數組,如果你不想以後分解它使用split

+0

非常簡單:D。 Stackoverflow殺死我的能力,介意自己......謝謝! – asiniy

+0

'NoMethodError:undefined method「div」for「00」:String' for minutes。我會編輯答案 – asiniy