我想维护我的代码DRY,然后我想转换这个伪代码:
def aMethod
a = aModel.find(2)
b = a.getVariable
a.setVariable = c
end
就像这样
def aMethod
anotherMethod(aModel, getVariable)
end
def anotherMethod(model, var)
a = model.find(2)
b = a.var
a.var = c
end
在我的测试中,似乎模型没有问题,但对于getVariable
(即访问模型的变量),它不起作用:undefined local variable or method
有什么想法吗?
答案 0 :(得分:3)
如果我理解你要做的事情,你可能想要使用send
,例如,
def anotherMethod(model, var_sym)
a = model.find(2)
b = a.send(var_sym)
a.send("#{var_sym}=", c)
end
anotherMethod(aModel, :getVariable)
(需要注意的是,我不知道a
,b
或c
是或应该做什么,因为他们是当地人OP。)