2014-02-10 36 views
2

我想在我的Ruby 2.0 Rails 4應用程序中爲Date類創建一個新方法。在/ lib中添加一個新的'date_extensions.rb'用於在另一個Ruby 1.9 Rails 3.2應用程序中工作,但不在這裏。現在擴展很簡單:在Rails 4.0中擴展日期類

class Date 
    def week_day 
    self.wday == 0 ? 7 : self.wday 
    end 
end 

我不喜歡把它放在初始化程序中,因爲它不斷增長。有沒有很好的解決方法?

+1

'config'/ initializers /''require'date_extensions''單線程有什麼問題? –

+0

如果您有很多數據相關的方法,請考慮將它們移至Gem。 – eabraham

+1

畝太短:是的,這沒有錯。但我想知道爲什麼在Ruby1.9或Rails3.2中不需要這樣的初始化器。不管怎麼說,還是要謝謝你 – aquajach

回答

2

在某些時候,Rails停止將lib目錄添加到自動加載路徑。另一個應用程序可能設置了自動加載lib目錄的設置,並且您的新應用程序沒有(尚未?)。所以這就是爲什麼你不得不通過初始化器直接要求文件。對於它的價值:我認爲這是更好的方法 - 只在需要時才加載代碼。我通常會添加一個config/initializers/application.rb,然後在那裏添加需求,例如require "date_extensions"。然後,按照您的建議,將date_extensions.rb文件放入lib文件夾中。