私は一定のハッシュP_FACT_MAP
と前のハッシュのキー配列product_params[:product_factors]
を持っています。 P_FACT_MAP
では、すべての値は、別の値またはProductFactor
テーブルの属性名である値の配列にマップされます。特定のレール属性をダイナミックに更新する
P_FACT_MAP = {
:x => %w[something]
:y => %w[something2, something]
:z => %w[something 3, something1]
...
...
}
私が実行して動的な属性値を更新しようとしている:
ProductFactor.v << product_params[:p_id]
完全なメソッドコード:
ProductFactor::P_FACT_MAP.collect.do |k, v|
puts "Value #{v}"
if product_params[:product_factors].include? k
v.each do |f|
@coach_recommendation_factor.send(f) << @coach.id
end
end
しかし、それは属性名vを認識せず、次のエラーが表示されます。
NoMethodError (undefined method `v' for #<Class:0x007f95de9b8180>)
属性の値を動的に更新することはできませんか、それともそのためには全く異なるアプローチをとる必要がありますか?