gpt4 book ai didi

ruby-on-rails - Rails - 扩展 Ruby Gem

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:15 25 4
gpt4 key购买 nike

我想向 ActiveMerchant gem 添加一些功能以测试 PayPal Express 网关,为此尝试了一个拉取请求,但在 Github 上被拒绝了。

我想向 ActiveMerchant Billing 模块添加一个类:

module ActiveMerchant #:nodoc:
module Billing #:nodoc:
class PaypalBogusGateway < BogusGateway

# some codes here

end
end
end

我已经通过下载 gem 并将其拉入本地项目并在其中传输我的新文件成功地完成了此操作:

#Gemfile
gem 'activemerchant', '1.34.1', path: "vendor/gems/activemerchant-1.34.1", require: 'active_merchant'

当然,这不是最好的主意,因为如果需要,我必须手动提取任何更新。

有什么方法可以使用从 RubyGems 源代码中提取的 gem 将类添加到他们的模块中吗?

谢谢

编辑

将它放在 lib 文件夹中应该可以,但我的代码需要从 gem 继承一些类,例如:

require File.dirname(__FILE__) + '/paypal/paypal_common_api'
require File.dirname(__FILE__) + '/paypal/paypal_express_response'
require File.dirname(__FILE__) + '/paypal_express_common'

将 File.dirname(FILE) 替换为安装 gem 的位置...这在服务器环境中会有所不同,对吗?

最佳答案

将activemerchant添加到Gemfile,捆绑安装

config/application.rb 中确保 lib 包含在自动加载路径中

# need to uncomment or add this to the configuration
config.autoload_paths += %W(#{config.root}/lib)

使用嵌套目录将您的类放在一个文件中以匹配模块

# lib/active_merchant/billing/paypal_bogus_gateway.rb

不要在你的伪网关、rails 中包含任何 require 语句(通过 bundler 应该需要 Gemfile 中的所有内容)

重启 rails

关于ruby-on-rails - Rails - 扩展 Ruby Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17902846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com