Search code examples
ruby-on-railsdynamic-dataparameters

Variable symbol in Params object in rails


I have the following code:

@profile.update_attributes(params[:xxxx_profile])

where xxxx stands for either male or female. Basically the form submit passes either a set of female_profile[foo] or a male_profile[foo] and i want to change it accordingly. Assuming I have a string that can be inserted in lieu of xxxx, how do I dynamically create this symbol?

Thanks.


Solution

  • Try something like:

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

    or, you should be able to pass in the string without converting to a symbol, because Rails uses a HashWithIndifferentAcceess for params: http://api.rubyonrails.org/classes/HashWithIndifferentAccess.html

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