Ruby on Rails - прохождение хэшей - PullRequest
2 голосов
/ 11 марта 2011

У меня есть кусок кода контроллера, где вычисляются некоторые значения. Результат в виде массива хэшей. Это должно как-то войти в частичную форму, чтобы впоследствии ее можно было извлечь во время коммита (через кнопку Отправить).

Вопрос в том, как мы передаем массив хэшей? спасибо.

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Есть ли причина, по которой имеет через форму?Это тип вещей, для которых я обычно использую сессию.

Я не могу придумать хороший способ сделать то, что вы просите с помощью форм.Я предполагаю, что вы можете создать скрытые поля для каждого ключа в вашем хэше в форме с hidden_field_tag ​​ в качестве альтернативы.Затем вы сталкиваетесь с проблемами при его переводе (что если значение ключа является массивом или другим хешем?).

Вы можете легко сохранить хэш в сеансе, а затем при каждой загрузке страницы проверить, есть ли хеш, где вы ожидаете его.При вычислении значений:

session[:expected_info] = results

И каждая страница загружается, примерно так:

if session.has_key?(:expected_info)
  results = session.delete(:expected_info)
  # you already calculated the results, just grab them and
  # do what you need to do
else
  # you don't have the expected info 
end
0 голосов
/ 11 марта 2011

Вы должны быть в состоянии передать это как строку к вашему частичному:

[{}].inspect

и оцените его, когда оно будет отправлено обратно через форму:

eval("[{}]"))

но это было бы очень грязно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...