-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 と呼ばれる) の 2 つの関数があります。これはかなりの数のモデル クラス (約 10 個のモデル クラスと合計 30 個の変数など) に対して行われるため、モデル クラスごとにこれらの関数を定義するのではなく、別の関数に移動したいと考えています。

4

1 に答える 1

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
于 2013-04-09T05:54:58.853 に答える