2009-12-08 4 views
8

je le code suivant:Symbole variable dans l'objet Params dans des rails

@profile.update_attributes(params[:xxxx_profile]) 

où xxxx est masculin ou féminin. Fondamentalement le formulaire soumet passe un ensemble de female_profile[foo] ou un male_profile[foo] et je veux le changer en conséquence. En supposant que j'ai une chaîne qui peut être insérée au lieu de xxxx, comment puis-je créer dynamiquement ce symbole?

Merci.

Répondre

12

Essayez quelque chose comme:

@profile.update_attributes(params["#{gender}_profile".to_sym]) 

ou, vous devriez être en mesure de passer dans la chaîne sans conversion à un symbole, parce que Rails utilise un HashWithIndifferentAcceess pour params: http://api.rubyonrails.org/classes/HashWithIndifferentAccess.html

@profile.update_attributes(params["#{gender}_profile"]) 
+0

Merci l'homme, cela a fonctionné gentil pour moi! – pastullo

3

Compris. J'ai pensé que ça pourrait être utile pour quelqu'un.

@profile.update_attributes(params[(@sexstring + "_profile").to_sym]) 
1

Vous pouvez également faire

@profile.update_attributes(params[:"#{gender}_profile"]) 
Questions connexes