【问题标题】:How to require module extension code如何要求模块扩展代码
【发布时间】:2011-10-05 17:06:22
【问题描述】:

我的设置:Rails 3.0.9、Ruby 1.9.2

我需要扩展 Active Merchant 模块以包含我自己的代码,我正在关注这里的文章 http://blog.matthodan.com/how-to-add-support-for-paypal-website-payment

根据文章,我在 /vendor/plugins/active_merchant/lib/active_merchant/billing/gateways/paypal/ 中创建了 paypal_recurring_payments.rb。接下来我必须修改一个 Active Merchant gem 文件 paypal.rb 以添加一行代码。问题是我无法将该代码更改部署到 Heroku,因此我需要另一种方法来执行此操作。任何见解将不胜感激。

【问题讨论】:

    标签: ruby-on-rails paypal activemerchant


    【解决方案1】:
    1. github 上分叉宝石
    2. 对 gem 的 fork 进行适当的更改。
    3. 使用 :git 选项在 Gemfile 中引用您的 fork。有关示例,请参阅 docs

    【讨论】:

    • 感谢您的建议,我真的很想避免为此创建新的 gem,没有更简单的方法吗?
    • 根据您的更改,您可以在 Rails 初始化程序中匹配您的更改。但是,由于您添加的行似乎只是一个要求。您可能可以通过将 require 添加到初始化程序来代替。
    • 那将是首选,我该怎么做?
    • 就我个人而言,我喜欢将我所有的 gem 扩展放在一个单独的目录中,但是为了得到我认为你想要做的最简单的方法是将你在“供应商/插件”中的文件放在配置/初始化程序/paypal_recurring_payments.rb。这将在启动时由 rails 自动加载。
    • 我同意你将供应商文件放在供应商目录中,有没有简单的方法可以做到这一点?顺便说一句,把文件放在你说有效的地方。我在想应该有一种方法可以从 model.rb 文件中获取文件,但无法弄清楚语法
    猜你喜欢
    • 2011-05-08
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多