Вопрос

У меня есть следующий код:

@profile.update_attributes(params[:xxxx_profile])

где xxxx означает либо мужчину, либо женщину.В принципе, форма отправки передает либо набор female_profile[foo] или a male_profile[foo] и я хочу изменить это соответствующим образом.Предполагая, что у меня есть строка, которую можно вставить вместо xxxx, как мне динамически создать этот символ?

Спасибо.

Это было полезно?

Решение

Попробуйте что-то вроде:

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

или вы должны иметь возможность передавать строку без преобразования в символ, потому что Rails использует HashWithIndifferentAcceess для параметров: http://api.rubyonrails.org/classes/HashWithIndifferentAccess.html

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

Другие советы

Разобрался в этом.Подумал, что это может быть кому-то полезно.

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

Вы также могли бы сделать

@profile.update_attributes(params[:"#{gender}_profile"])
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top