Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails应用程序中更改gem文件_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在rails应用程序中更改gem文件

Ruby on rails 在rails应用程序中更改gem文件,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个rails应用程序,我正在gemfile中添加一个开源gem。gem中的大多数代码都可以按照我的要求正常工作,但我需要对gem代码进行一些更改,使其更有用 我没有在lib中包含gem代码,因为这意味着维护的代码比需要的要多 如何在重新编写一些代码以替换gem代码(仅适用于某些文件)的同时包含gem?我只需对gem进行猴子补丁,并将这些补丁放在$RAILS\u ROOT/lib/patches/中,然后在config/boot.rb中要求它们: ENV['BUNDLE_GEMFILE']

我有一个rails应用程序,我正在gemfile中添加一个开源gem。gem中的大多数代码都可以按照我的要求正常工作,但我需要对gem代码进行一些更改,使其更有用

我没有在lib中包含gem代码,因为这意味着维护的代码比需要的要多


如何在重新编写一些代码以替换gem代码(仅适用于某些文件)的同时包含gem?我只需对gem进行猴子补丁,并将这些补丁放在
$RAILS\u ROOT/lib/patches/
中,然后在
config/boot.rb中要求它们:

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' # Set up gems listed in the Gemfile.

# Apply patches
Dir[File.expand_path('../../lib/patches/*.rb', __FILE__)].each {|f| require f}

我只需要对gem进行猴子补丁,并将这些补丁放在
$RAILS\u ROOT/lib/patches/
中,然后在
config/boot.rb
中要求它们:

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)

require 'bundler/setup' # Set up gems listed in the Gemfile.

# Apply patches
Dir[File.expand_path('../../lib/patches/*.rb', __FILE__)].each {|f| require f}

你需要修补它。在config/initializers中创建一个文件,该文件将覆盖gem的某些功能。为了让它更明显,在lib中创建一个名为
extensions
的文件夹,并将其加载到初始值设定项中。但是请注意,猴子补丁有一个严重的缺点——它可能会使gem的升级变得非常困难。还有其他方法吗?因为我想定期升级gemYou需要猴子补丁。在config/initializers中创建一个文件,该文件将覆盖gem的某些功能。为了让它更明显,在lib中创建一个名为
extensions
的文件夹,并将其加载到初始值设定项中。但是请注意,猴子补丁有一个严重的缺点——它可能会使gem的升级变得非常困难。还有其他方法吗?因为我想定期升级宝石