轨道中Params对象中的变量符号

时间:2009-12-08 03:00:39

标签: ruby-on-rails dynamic-data params

我有以下代码:

@profile.update_attributes(params[:xxxx_profile])

其中xxxx代表男性或女性。基本上,表单提交通过一组female_profile[foo]male_profile[foo],我想相应地更改它。假设我有一个可以插入的字符串代替xxxx,我该如何动态创建这个符号?

感谢。

3 个答案:

答案 0 :(得分:12)

尝试类似:

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

或者,您应该能够传入字符串而不转换为符号,因为Rails对params使用HashWithIndifferentAccess:http://api.rubyonrails.org/classes/HashWithIndifferentAccess.html

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

答案 1 :(得分:3)

想出来。认为它可能对某人有用。

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

答案 2 :(得分:1)

您也可以

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