我有一個恆定的散列P_FACT_MAP
和前一個散列product_params[:product_factors]
的鍵陣列。在P_FACT_MAP
中,所有值都映射到另一個值或值的數組,這些值是ProductFactor
表的屬性名稱。Dynanmically更新具體導軌屬性
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>)
是不是可以動態更新屬性的值,還是必須採取完全不同的方法才能達到這個目的?