我正在使用Rails 3并收到如下错误:
undefined method `persisted?' for []:Array
我想monkeypatch来解决这个问题。首先:它应该是什么样的?我对Ruby的源代码中的Array类的嵌套知之甚少。我很感激这个指导。
答案 0 :(得分:7)
基本上你只需编写类和函数就像你对任何其他类一样,并将它添加到原始类定义中。
喜欢如此:
class Array
def persisted?
# Does it persist?
end
end
答案 1 :(得分:3)
Monkey-patching看起来像这样:
# 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实例是否持久化,你可能意味着什么?