2013-04-09 32 views
-5

我有一个类(X)的ruby实例和一个变量列表作为字符串[“var1”,“var2”,..,“varn”]。我有这样的净效应是这样,这将改变这些值的函数:当以字符串形式传递变量时修改变量列表

def modify(instance_obj, arrray_of_variables) 
    # do something 
end 

净效果应该是:

X.var1 = modifyVar(X.var1) 
X.var2 = modifyVar(X.var2) 
.. 
X.varn = modifyVar(X.varn) 

所有的变量都假定为字符串。编辑(更多信息):我试图解决的实际问题是,对于我的模型类约10,我有几个字符串变量存储在数据库中作为JSON字符串。所以我有两个函数parse_from_json(应该被称为after_find)和serialize_to_json(称为before_save)。因为这将为相当多的模型类(大约10个模型类和大约30个变量左右)完成,所以我想将它移动到一个单独的函数,而不是为每个模型类定义这些函数。

+0

你在这里试图解决什么是真正的问题? – 2013-04-09 01:53:59

+0

您可以在类中添加一个实例方法,它将用于您的目的。 – sunny1304 2013-04-09 01:55:32

+0

@ muistooshort:请参阅我原来的问题编辑了解更多信息。 – Rajat 2013-04-09 02:13:30

回答

1

你可以试试这个。

def modify(instance_obj, arrray_of_variables) 
    arrray_of_variables.each do |variable| 
    instance_obj.send("#{variable}=", modifyVar(instance_obj.send(variable))) 
    end 
end