0

我想保持我的代码干燥,然后我想转换这个伪代码:

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

有任何想法吗?

4

1 回答 1

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, orc是什么,或者应该做什么,因为他们是 OP 中的本地人。)

于 2012-11-27T21:07:24.550 回答