2013-04-09 34 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