【发布时间】:2016-08-02 06:44:19
【问题描述】:
我试过了,认真的。那里有很多问题,但许多开发人员说“它不适合我”;我就是其中之一——据说。
我正在阅读猴子修补 rails gem 的最佳方法。我找到了few,但决定使用this method。
我想对xeroizer gem 进行猴子补丁,而不是invoice.rb model。
# lib/xeroizer/invoice/invoice_url.rb
module Xeroizer
module Invoice
module InvoiceUrl
def invoice_url(id)
@application.http_get(@application.client, "#{url}/#{CGI.escape(id)}/OnlineInvoice")
end
end
end
end
使用“此方法”链接,我认为这应该可以工作,但它并不重要。
控制器:
include Xeroizer::Invoice::InvoiceUrl
# Invoice.include Xeroizer::Invoice::InvoiceUrl
def some_method
# @xero is in a private method. It's here for short demonstration
@xero = Xeroizer::PrivateApplication.new("MY_CONSUMER_KEY", "MY_SECRET_KEY", "#{Rails.root}/privatekey.pem")
Rails.logger = @xero.Invoice.invoice_url("ad61ea97-b9e9-4a1e-b754-7c19e62f8cd7")
end
Xeroizer::Record::InvoiceModel 的未定义方法 `invoice_url'
如何将自定义方法添加到 rails gem 的类?
【问题讨论】:
-
您可以尝试将您的代码作为初始化程序
-
@Alfie 我想我已经尝试过使用
Xeroizer::PrivateApplication.class_eval ...,但从未奏效。可能我没做对。 -
我没有看到任何猴子修补任何东西的尝试。请您详细说明您要达到的目标吗?
-
@mudasobwa 这是我第一次尝试“猴子补丁”,我认为这意味着向 gem 添加自定义方法?没有?
标签: ruby-on-rails ruby ruby-on-rails-4 rubygems