Ruby on Rails регистрационные данные? - PullRequest
0 голосов
/ 13 июля 2010

Я пытаюсь создать страницу регистрации в два этапа.

На первом шаге отображается форма с именем, адресом электронной почты, паролем.

На втором шаге отобразится ReCaptcha.

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

Я думал о сессиях, но я знаю, что вы не должны хранить конфиденциальную информацию в сессиях.

Я думал об использовании Ajax для рендеринга ReCaptcha, если имя, адрес электронной почты, проходят .. проходят проверки.

Любой совет? Спасибо.

Ответы [ 3 ]

4 голосов
/ 13 июля 2010

Я советую, что я думаю, что две формы для подобной ситуации неоправданно сложны, если только нет какого-то особого императива для приложения, чтобы отделить захват имени пользователя / пароля и проверку CAPTCHA.

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

Лично я бы пошелмаршрут Javascript.Загрузите обе формы одновременно, шаг 1 виден, а шаг 2 скрыт.Подтвердите шаг 1 с помощью вызова AJAX на сервере (если вам это нужно) или на стороне клиента, если вы этого не сделаете.Если шаг 1 действителен, тогда откройте форму шага 2 (и при желании скройте форму шага 1, если хотите).

ОБНОВЛЕНИЕ: Добавление дополнительной информации по запросу спрашивающего

Существует множество способовскрывать и показывать содержимое страницы, но общий подход заключается в том, чтобы обернуть его в блок <div>, помеченный как скрытый, с использованием CSS, а затем использовать некоторый Javascript (например, JQuery), чтобы переключить его на скрытый или скрытый.Например:

<div id="step2" style="display:none">
  <% form_for .... %>

  <% end %>
</div>

При первой загрузке страницы форма будет скрыта.Затем в JQuery (например) выполните:

$(function() {
  $('#step2').show();
});

, чтобы отобразить его.См. Документацию для show , hide и toggle для получения дополнительных примеров использования.

1 голос
/ 13 июля 2010

Есть много способов сделать это.

railscast # 217 , демонстрирует универсальный способ работы с многошаговыми формами, способный обрабатывать сложные вещи, такие как многократные движения вперед и назад. Посмотри.

1 голос
/ 13 июля 2010

Если вам нужно что-то простое, вы можете сохранить параметры на втором шаге, используя скрытые поля .

Если вам нужно что-то более сложное (несколько шагов, возвращаясь к предыдущему шагу,частичные проверки и т. д.) вы можете использовать мастер-плагин.Вот список плагинов мастера из Ruby Toolbox .

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