Rails и Flash params - PullRequest
       12

Rails и Flash params

0 голосов
/ 16 декабря 2010

Я пытаюсь опубликовать значение на моем сайте rails от Flash.

У меня есть URL-адрес http://localhost:3000/users/new, который я публикую на Flash.Переменная, которую я отправляю как метод POST, score=xx.По какой-то причине я не могу подобрать значение в моем контроллере rails новым методом: @newScore = params[:score].Если я изменяю метод на GET, я могу получить значение без проблем.Так должен ли я использовать хэш params для метода POST?

Если кто-то может посоветовать, я буду очень благодарен.

1 Ответ

0 голосов
/ 16 декабря 2010

Вы используете нестандартные маршруты?Или вы просто делаете resources :users?Лучше беги rake routes./users/new обычно GET, что имеет смысл, так как вы выбираете объект.Действие create является единственным POST, и оно отображается на /users.Выполнение /users/new как POST прерывает REST.

Данные POST не допускаются для метода GET.Любые параметры будут помещены в строку запроса в URL.Эти параметры по-прежнему будут отображаться в хеше params.

Редактировать

Если вы действительно пытаетесь создать пользователя с помощью этого вызова REST, вам необходимоPOST для http://localhost:3000/users, не http://localhost:3000/users/new

Редактировать

К сожалению, я не знаю достаточно о том, как Flash отправляет POST-запросычтобы сказать вам, почему ваши параметры не встречаются.Тем не менее, если вы пытаетесь добраться до формы, вам определенно нужен GET для http://localhost:3000/users/new. Вы говорите, что вы можете очень просто подобрать переменную при выполнении GET, верно?Так что вам не нужно делать POST.

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

Редактировать

Если вы можете понять, как передавать данные Post из Flash в Rails, вам нужно сделать POST для users_url, иЗатем вы можете изменить свой метод create, чтобы отправить обратно идентификатор пользователя, который был создан.Затем, когда вы получите это обратно, вы можете сделать еще один вызов, чтобы отредактировать пользователя с этим идентификатором, оставив поле счета отключенным.Желаем удачи.

...