我正在尝试覆盖我拥有的 DataMapper 模型中的all()
andfirst()
方法,但是存在一些问题。我的方法被调用了,但是(很明显)它们递归地调用自己并导致 SystemStackError。
class Model
include DataMapper::Resource
include OtherModule
def self.all(options = {})
do_something()
self.all(options.merge!(:deleted => false))
end
def self.first(options = {})
self.first(options.merge!(:deleted => false))
end
property :id, Serial
property :name, Text
...
除非另有说明,否则所有这些方法都应该调用all
orfirst
方法。:deleted => false
我试过了
def self.all(options = {})
super.self.all(options.merge!(:deleted => false))
end
和
def self.all(options = {})
do_something()
super.all(options.merge!(:deleted => false))
end
无济于事。有没有办法解决这个无限递归问题?