我想覆盖rails引擎的文件,但该文件位于该引擎的lib / rails目录中。当我将相同的文件放在我的lib / rails目录中时,它不会覆盖该文件。看起来像rails处理lib目录的方式与app目录中的文件不同。
此外,我无法将此文件放在初始化文件夹(per this solution)中,因为文件名与所需的现有文件相同。这样做的正确方法是什么?
答案 0 :(得分:1)
我找到解决此问题的最佳方法是添加
require "#{Rails.root}/lib/path/to/file"
在config/application.rb
的末尾。污染很小,并且实现与超控相同的效果。
目前在Spree项目中使用它来覆盖lib/spree_samples.rb
。
修改强>
在这个答案中找到了更好的方法: Overloading lib files from gem mounted as engine
基本上,将要覆盖的文件放在config/initializers
目录中。