我正在使用 Rails 3 并收到如下所示的错误:
undefined method `persisted?' for []:Array
我想monkeypatch来解决这个问题。首先:它应该是什么样子?我对 Ruby 源代码中的 Array 类的嵌套知之甚少。我会很感激指导。
我正在使用 Rails 3 并收到如下所示的错误:
undefined method `persisted?' for []:Array
我想monkeypatch来解决这个问题。首先:它应该是什么样子?我对 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 实例是否被持久化可能意味着什么?