как получить значения params [: userform]? - PullRequest
0 голосов
/ 26 декабря 2010


У меня есть массив params[:userform], который содержит мои элементы формы, я ищу решение вроде php: arrayname['city'].Я хочу поместить элементы в переменные

1 Ответ

2 голосов
/ 26 декабря 2010

Использование массива - плохая идея, потому что вы по сути не представляете, что означают значения, поскольку вы знаете только индекс; Вы должны использовать хеш по этой самой причине.

При этом, чтобы прочитать значения из вашего массива, вы можете сделать:

params[:userform].each_with_index {|value, index| puts "[#{index}] == #{value}" }

Чтобы напрямую назначить ваши переменные, вы можете сделать это:

some_variable = params[:userform][0]
some_other_variable = params[:userform][1]

Опять же, вы должны действительно использовать хеш, чтобы вы могли сделать что-то вроде этого:

user_name = params[:userform][:name]
user_state = params[:userform][:state]

Гораздо проще читать, гораздо легче понять, но самое главное, что гораздо проще превратить в метакод:

params[:userform].each do |key, value|
  instance_variable_set("@user_#{key}", value)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...