Повторное заполнение полей формы в проверке формы Rails - PullRequest
0 голосов
/ 26 января 2012

У меня есть простая страница регистрации пользователя в моем приложении rails, которая имеет два поля: имя и адрес электронной почты. У меня есть проверка на стороне клиента в каждом текстовом поле и на стороне сервера для кнопки отправки (это рекомендуемый способ, верно?)

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

format.html { redirect_to :back, :notice => 'Uh Oh! Something went wrong!', :name => @user.name } <- создать действие и </p>

if(params.has_key?(:name)) @user.name = params[:name] end <- новое действие </p>

Любая помощь приветствуется!

Ответы [ 3 ]

3 голосов
/ 26 января 2012

Да, это рекомендуемый способ проверки на стороне клиента и сервера.

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

Либо вы можете передать ваше сообщение проверки во флэш-памяти, что является плохим способом, который является хорошим для визуализации страницы формы (хорошо, если форма создается как отдельная часть), а объект @ будет автоматически отображать соответствующие поля, такие как имя, адрес электронной почты .

Надеюсь, это поможет вам.

спасибо

1 голос
/ 26 января 2012

Добавьте это в форму: <% = f.error_messages%> и не перенаправляйте, потому что вы потеряете опубликованные данные.

Вы можете сделать что-то подобное в своем действии:

if @posted_object.save
   redirect_to ...
else
   render 'your view'
end
0 голосов
/ 28 января 2012

Оказывается, вспышка может делать то, что я хотел, но я использовал ее неправильно. Я должен был использовать: flash[:name] = "name" перед перенаправлением вместо redirect_to :back, :name => "name"

и в HTML <% if flash[:name] %> вместо <% if params[:name] %> или <% name %>

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