我有一个场景需要修改插件中的某些功能。所以我想我可以更改vendor/plugins/
文件夹中的文件。但后来我意识到我安装的gems代码已经被rails使用而不是vendor/plugins/
。我想从我的gemlist
删除gem但是会抛出错误。那么如何重定向我的rails以使用vendor/plugins/
文件夹中的插件而不是我的宝石?
答案 0 :(得分:3)
答案 1 :(得分:0)
尝试猴子修补,而不是直接修改插件/宝石。我在lib /文件夹中修补它们,并在我的环境中使用config.auto_load。这不是太糟糕,只要确保它在相同的模块中,并具有相同的方法名称。例如,要覆盖字符串方法,您可以执行以下操作:
class String
def method_to_override
do_something
super # if you want to still use the original method
end
end
我建议不要直接修改任何内容。
另外,如果我使用捆绑的宝石,我通常会捆绑exec命令,但我认为仍然会从我选择的路径中加载宝石。我最近很少使用插件。