Ruby on Rails - Добавление переменной в params [] - PullRequest
3 голосов
/ 14 мая 2010

В контроллере, как я могу добавить переменную в конце params []?

Если я попробую это, я получу ошибку: params [: group_] + variable

Как это должно быть сделано?


Редактировать под запрос

Хорошо, у меня есть форма, которая устанавливает группы радиокнопок с такими именами:

group_01DRN0

Очевидно, у меня есть разные группы в форме (group_01AAI0, group_01AUI0 и т. Д.), И значение устанавливается в соответствии с переключателем, выбранным в группе:

Переключатель «group_01DRN0» может иметь значение«21» или «22» или «23», переключатель «group_01AAI0» может иметь значение «21», «22» или «23» и т. Д.

В БД у меня есть каждый код (01DRN0, 01AAI0, 01AUI0 и т. Д.), Поэтому я хочу выбрать их из БД и выполнить итерацию в значении параметров, чтобы я мог получить значение группы переключателей, я пробовал это без удачи:

@codes=Code.get_codes
for c in @codes
  @all=params[:group_] + c.name
end

Спасибо.

Ответы [ 2 ]

4 голосов
/ 29 августа 2012
p = params
p[:new_param_name] = new_param_value

У меня работает (рельсы 3.2). Примечание: использование p вместо изменения params позволяет избежать изменения исходных параметров.

3 голосов
/ 14 мая 2010

params выглядит как хеш, но на самом деле это не так. Поэтому, если вам нужно «дополнить» параметры при обработке входящих данных в контроллере, придумайте новую структуру данных, которая включает в себя либо параметры, либо их элементы.

Добавлено:

Может быть, вы ищете

@codes=Code.get_codes
@all = []    
for c in @codes
  @all << params["group_#{c.name}"]
end
...