私が持っている DataMapper モデルのall()
andメソッドをオーバーライドしようとしていますが、いくつかの問題があります。first()
私のメソッドが呼び出されていますが、(すぐに明らかになったように) 自分自身を再帰的に呼び出すため、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
無駄に。この無限再帰の問題を回避する方法はありますか?