1

我正在使用 Rails 3 并收到如下所示的错误:

undefined method `persisted?' for []:Array

我想monkeypatch来解决这个问题。首先:它应该是什么样子?我对 Ruby 源代码中的 Array 类的嵌套知之甚少。我会很感激指导。

4

2 回答 2

7

基本上,您只需像编写任何其他类一样编写类和函数,它就会被添加到原始类定义中。

像这样:

class Array
    def persisted?
        # Does it persist?
    end
end
于 2010-11-13T23:36:47.100 回答
3

猴子补丁看起来像这样:

# 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 实例是否被持久化可能意味着什么?

于 2010-11-13T23:37:32.167 回答