Ruby on rails 动态更新特定的rails属性

Ruby on rails 动态更新特定的rails属性,ruby-on-rails,ruby,ruby-on-rails-4,hash,nomethoderror,Ruby On Rails,Ruby,Ruby On Rails 4,Hash,Nomethoderror,我有一个常量hashp\u FACT\u MAP和前一个hashproduct\u参数[:product\u factors]的密钥数组。在P\u FACT\u MAP中,所有值都映射到另一个值或一个值数组,这些值是ProductFactor表的属性名称 P_FACT_MAP = { :x => %w[something] :y => %w[something2, something] :z => %w[something 3, something1] ...

我有一个常量hash
p\u FACT\u MAP
和前一个hash
product\u参数[:product\u factors]
的密钥数组。在
P\u FACT\u MAP
中,所有值都映射到另一个值或一个值数组,这些值是
ProductFactor
表的属性名称

P_FACT_MAP = {
  :x => %w[something]
  :y => %w[something2, something]
  :z => %w[something 3, something1]
  ...
  ...
}
我正在尝试通过执行以下操作来更新动态属性值:

ProductFactor.v << product_params[:p_id]

ProductFactor.v我认为这一行应该是

ProductFactor::P_FACT_MAP.collect.do |k, v|
替换为

ProductFactor::P_FACT_MAP.each do |k, v|

'v'
不是
ProductFactor
类的方法。如果您试图使用
k,v
中的变量
v
,则将
ProductFactor.v
替换为
ProductFactor.send(v)

ProductFactor::P_FACT_MAP.collect.do |k, v|
ProductFactor::P_FACT_MAP.each do |k, v|