2012-07-31 41 views
1

我想覆蓋一個rails引擎的文件,但該文件位於該引擎的lib/rails目錄中。當我把相同的文件放在lib/rails目錄下時,它不會覆蓋文件。看起來像rails處理lib目錄的方式不同於說出app目錄中的文件。如何覆蓋lib目錄中的rails引擎文件?

此外,我不能將此文件放置在初始化程序文件夾(per this solution)中,因爲文件名與所需的現有文件相同。這樣做的正確方法是什麼?

+0

叉引擎? – bento 2012-07-31 22:52:35

回答

1

我已經找到了解決這一問題的最好辦法是通過在config/application.rb末增加

require "#{Rails.root}/lib/path/to/file" 

。污染很小,並且達到與超控相同的效果。

當前在Spree項目中使用它來覆蓋lib/spree_samples.rb

編輯

找到一個更好的辦法在這樣的回答: Overloading lib files from gem mounted as engine

從本質上講,把你想在你的config/initializers目錄覆蓋文件。