J'ai un hachage constant P_FACT_MAP
et un tableau de clés du hash précédent product_params[:product_factors]
. Dans P_FACT_MAP
, toutes les valeurs sont mappées à une autre valeur ou un tableau de valeurs qui sont les noms d'attribut de la table ProductFactor
.Dynanmiquement mise à jour des attributs de rails spécifiques
P_FACT_MAP = {
:x => %w[something]
:y => %w[something2, something]
:z => %w[something 3, something1]
...
...
}
Je suis en train de mettre à jour les valeurs d'attributs dynamiques en faisant:
ProductFactor.v << product_params[:p_id]
Le code de la méthode complète:
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
Mais il ne reconnaît pas le nom d'attribut v et J'obtiens l'erreur suivante:
NoMethodError (undefined method `v' for #<Class:0x007f95de9b8180>)
N'est-il pas possible de mettre à jour dynamiquement la valeur d'un attribut ou dois-je adopter une approche complètement différente pour y parvenir?