2009-05-13 3 views
3

У меня есть модель со многими полями (почти 40). Клиент хочет, чтобы поля делились между несколькими экранами. В модели также есть несколько has_manys, которые должны выглядеть так, как будто они являются частью одной и той же модели.Rails, One Model, Many Screens

Как можно разделить модель и какие компромиссы между ее способами?

Я вижу несколько возможностей:

1) Использование JavaScript для отображения и скрытия части формы. Я думаю, что смогу сделать эту работу.

2) Используйте формы, которые представляют различные действия. Может ли form_ использоваться с соответствующими параметрами?

Я также ищу другие идеи.

ответ

2

Отъезд acts as state machine. Вы можете использовать это для создания мастеров и еще много чего.

Перечитав свой вопрос, я думаю, что Javascript действительно то, что вы ищете. Проверьте jQuery UI, у них есть компонент вкладки, который, вероятно, поможет.

+0

Спасибо за ссылку, Тим. Я хорошо понимаю государственные машины, но не вижу, как это поможет, так как мне не нужно иметь состояние или действовать в определенном порядке. Или, если у меня есть состояние, как мне получить определенные части формы на странице и заставить их правильно обновляться? – Chris

+0

Возможно, я неправильно понял вопрос. Если вы просто хотите показать и спрятать элементы, Javascript - это путь. Если вы хотите разделить содержимое одной формы на несколько страниц, SSM позволит вам отслеживать страницу, на которой вы находитесь, а также обеспечить механизм для перемещения между ними. Перечитав ваш вопрос, я думаю, что Javascript действительно то, что вы ищете. Проверьте интерфейс jQuery, у них есть компонент вкладки, который, вероятно, поможет. –

+0

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

1

Я бы выбрал плагин ActsAsWizard. Делает такого мастера чрезвычайно простым.

Проверьте, отлично ли это.

+1

Имейте в виду, что ActsAsWizard требует, чтобы 40 полей в одной модели были разбиты на модели. Это действительно больше для построения ввода данных для объекта и его отношений через мастера, а не для построения одной большой модели. – srboisvert