我有一个类(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 :(得分: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