簡體   English   中英

如何為Ruby編寫猴子補丁?

[英]How do I write a monkey patch for Ruby?

我正在使用Rails 3並收到如下錯誤:

undefined method `persisted?' for []:Array

我想進行修補以解決此問題。 首先:應該是什么樣子? 我對Ruby源代碼中Array類的嵌套了解甚少。 我會很感激的指導。

基本上,您只需要像編寫其他任何類一樣編寫類和函數,就可以將其添加到原始類定義中。

像這樣:

class Array
    def persisted?
        # Does it persist?
    end
end

猴子修補看起來像這樣:

# patches/array.rb
class Array # Array is a top-level class
  def persisted?
    false # or your own implementation
  end
end

# some/other/script.rb
require 'path/to/patches/array.rb'
my_array = [1, 2, 3]
puts my_array.persisted?

現在:問一個Array實例是否持久化可能意味着什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM