В Rails, как я могу гарантировать, что пользователи вводят данные формы в правильном порядке? - PullRequest
0 голосов
/ 12 февраля 2009

У меня есть приложение Rails с моделью, поля которой являются датами, которые являются контрольными точками для определенного процесса.

Я хочу запретить пользователю вводить дату для n-й контрольной точки, пока он не введет дату для (n-1) -го числа.

Очевидно, я могу проверить в модели, чтобы убедиться, что никакие даты не пропущены (и что даты в хронологическом порядке), но это кажется неудовлетворительным. В идеале, n-ное поле не должно быть видно в форме, пока (n-1) -е поле не будет заполнено (и, возможно, нажата кнопка «Далее».

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

Ответы [ 2 ]

1 голос
/ 12 февраля 2009

Либо отключить, либо скрыть все входы, кроме первого. Когда пользователь завершает каждый ввод, используйте Ajax-вызов, чтобы проверить его, а затем отобразить / включить следующий. Когда все входы завершены, отобразите / активируйте кнопку сохранения / продолжения.

0 голосов
/ 12 февраля 2009

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

См. Github: rubyist / aasm

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