我在模型中有一段代碼,它根據運行該方法的當天時間設置開始日期和結束日期。如何不在我的模型中重複此代碼
讓我們直接進入代碼示例:
#MODEL
now = Time.now
if now.hour >= 17 && now.hour <= 23
#night
n = now+1.day
startd = Time.local(now.year, now.month, now.day, 17, 00, 00)
endd = Time.local(n.year, n.month, n.day, 8, 00, 00)
elsif now.hour >= 0 && now.hour <= 7
#morning
n = now-1.day
startd = Time.local(n.year, n.month, n.day, 8, 00, 00)
endd = Time.local(now.year, now.month, now.day, 17, 00, 00)
end
然後模型(相同或其他)裏面,我想運行一個發現裏面這個功能。
#MODEL(SAME OR OTHER)
Model.find(:all,
:conditions => ['created_at >= ? AND created_at <= ?', startd, endd])
的問題是,我要使用該功能來設置開始和結束日期的很多,我不知道在哪裏放置它不重複自己。它將用於不同的模型。
感謝您的任何幫助。
這聽起來像是一個很好的解決方案,我已經嘗試過,但它給了我「未定義的方法'calc_start_and_end_times'for#」錯誤。我將模塊包含在模型類的頂部。任何想法? –
mickey
2009-07-23 14:20:05
嘗試更改def self.calc_start_and_end_times以確定calc_start_and_end_times 我不記得您是否需要自定義方法定義。 – erik 2009-07-23 14:48:53
也試過,抱歉不提。這聽起來像模型不能從模塊訪問該方法。 – mickey 2009-07-23 15:10:11