我有以下模型
class myclass
def mymethod(a, b, c, d = 'e')
StoredProcedure::Test.exec!(
a, b ,c ,d)
end
end
我在模型中有属性f值,但我不知道如何将其分配给参数b。
我尝试了def baz(a, b = f, c, d = 'e')
但没有工作。
如何将f的值分配给模型中的参数b?
答案 0 :(得分:0)
我认为你最好的选择是将b设置为nil,然后在用户未指定参数的情况下将其分配给方法:
class myclass
def mymethod(a, c, b = nil, d = 'e')
b ||= f
StoredProcedure::Test.exec!(a, b, c, d)
end
end
另请注意,我重新订购了参数。可选参数必须在必需参数之后。
当然,如果你希望b一直是f并且不希望用户覆盖它,你应该完全摆脱它:
class myclass
def mymethod(a, c, d = 'e')
StoredProcedure::Test.exec!(a, f, c, d)
end
end