2012-07-31 84 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目录覆盖文件。