Обслуживание альтернативных форм для редактирования одной модели в рельсах - PullRequest
0 голосов
/ 05 января 2012

У меня есть модель, и я хочу, чтобы пользователи могли редактировать различные подмножества атрибутов модели в разных точках.Рассмотрим модель с атрибутами A, B, C, D, E и F.

Я хотел бы, чтобы модель изначально создавалась с формой, имеющей поля для A и B. Затем на другом шаге вПроцесс Я хотел бы показать пользователю форму для редактирования модели и чтобы эта форма имела поля для C и D и E. В другой момент я хотел бы показать им форму для редактирования модели и чтобы эта форма имела поля для A, E, и F. Моя фактическая ситуация более сложна, чем эта, но ради этого вопроса я считаю, что это адекватно.Каковы разные хорошие способы подавать эти разные формы?Единственный способ, о котором я могу думать прямо сейчас, это:

  • Имеют разные действия и соответствующие формы для каждого случая и создают необходимые маршруты в файле rout.rb.

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Вы видели видео Railscasts, касающееся многоэтапных форм ?

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

0 голосов
/ 05 января 2012

Джон, Нет ограничений на создание нескольких представлений.Вы можете создавать различные партиалы или даже полные файлы и отображать их на основе вашей собственной логики.Единственная практическая проблема, с которой вы столкнетесь - это активная проверка записей.Вам нужен способ локализовать определенные проверки для определенных форм.Вы можете сделать это, используя сессию, куки и др.Еще одна вещь, на которую стоит обратить внимание, это то, собираете ли вы определенные элементы только на: create,: update или какой-то конкретный метод действия.Если это так, то вы можете использовать спецификатор ": on", чтобы предотвратить запуск проверок в неправильное время.Учебник, упомянутый Робом выше, довольно хорош, и я проголосовал за его ответ.Но это один из подходов, и вам может быть проще реализовать его по-своему, используя любой другой метод, о котором я говорил.

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