モデルに2つのスコープのようなメソッドを定義しました。
def self.foo var
where(foo: var)
end
def self.bar var
where(bar: var)
end
これらのメソッドの1つにnilを渡して、事実上無視できるようにしたいと思います。それで:
var1 = 10
var2 = nil
# ...
Model.foo(var1).bar(var2)
私は次のようなさまざまなことを試しました:
def self.bar var
return self if var.nil?
where(bar: var)
end
しかし、上記の例でself
は、このメソッドがチェーン内の前のメソッドから渡されたものを返さず、それが返されるModel
ため、で行われたすべてのレッグワークが失われfoo
ます。
どうすれば私が試みていることを達成できますか?