Подтвердить что ты не робот

Как создавать формы мастера в рубине на рельсах

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

Итак, на шаге 1 они могут заполнить контактную информацию. После того, как они будут выполнены, они могут щелкнуть дальше и быть на шаге 2, чтобы заполнить платежную информацию и т.д. Если они совершают ошибку, они могут щелкнуть ее и исправить. Некоторые шаги потребуются, в то время как другие не будут, но вам нужно сделать это до последнего шага, чтобы отправить данные в базу данных, чтобы зарегистрироваться. Затем они нуждаются в способности вернуться и заполнить прошлые шаги таким же образом после завершения. (например: возможно, если бы они нажали ссылку на профиль, они могли бы переделать шаги таким же образом, потому что они не захотели сразу выполнить все шаги. Возможно, если вам дана кнопка пропуска, прежде чем они завершат шаги для регистрации?). Я также нуждаюсь в проверке того, какие шаги были выполнены, чтобы они не перешли на следующий шаг, пока не будут исправлены или не завершены.

Вариант 1) Я заметил, что ajax был рекомендован в качестве опции в других вопросах в stackoverflow. Единственная проблема, с которой я столкнулся, заключается в том, что пользователь не сможет зарегистрироваться, если javascript отключен. В идеале я бы хотел, чтобы он был родным для рубинов на рельсах, но я готов работать с тем, что необходимо, чтобы заставить его работать.

4b9b3361

Ответ 1

Есть несколько плагинов которые обеспечивают упрощение конструкции wizzard в рельсах.
Acts as Wizard и Wizardly кажутся самыми популярными.
Основная идея заключается в следующем:
* создать модель на первом этапе
* затем отредактируйте его на последующих шагах,
* применение частичной проверки на каждом шаге и * наличие модели реализует какую-то государственную машину.

Ответ 2

Вы должны посмотреть, как этот рельс снимает эпизод на нескольких ступенчатых формах:

http://railscasts.com/episodes/217-multistep-forms

Будьте готовы перемотать назад и посмотреть еще раз. Он очень быстро!

Ответ 5

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

Такой подход настоятельно рекомендует использовать класс формы вместо непосредственного взаимодействия с моделью (http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/), и вам нужно настроить сообщение об ошибке рендеринг немного.

Плюсы: только один db-хит, без хлопот с постоянными недопустимыми экземплярами (не нулевые столбцы, before_save проверки работоспособности для испорченных атрибутов), не обратный вызов ад

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