我有一个带有以下签名的ruby函数:
def botao_adicionar(model, prefix = "/#{model.name.tableize}", callback = nil)
我希望在不传递prefix
参数的情况下进行调用,因此它采用我在上面定义的函数的默认值。所以我这样称呼它:
botao_adicionar(model=ArrendamentoContrato, callback="bind_unidades_consumidoras()")
它将callback
值与prefix
变量相关联。我相信它是按参数的顺序匹配的,但是我明确地在函数调用中调用了参数的名称......这不应该起作用吗?谢谢!
答案 0 :(得分:1)
您可以使用关键字参数:
def botao_adicionar(model, prefix: "/#{model.name.tableize}", callback: nil)
end
用法:
botao_adicionar(ArrendamentoContrato, callback: "bind_unidades_consumidoras()")
答案 1 :(得分:1)
你所有的论点都是位置的。这意味着您无法按名称分配它们。
您似乎想要使用关键字参数。它们的正确语法是:
def botao_adicionar(model, prefix: "/#{model.name.tableize}", callback: nil)
然后
botao_adicionar(ArrendamentoContrato, callback: "bind_unidades_consumidoras()")