Rails 3 - обработка ввода текста для создания нескольких моделей - PullRequest
0 голосов
/ 08 июня 2011

В приложении, над которым я работаю, Курсы имеют много проблем , которые, в свою очередь, имеют много шагов .Прямо сейчас есть форма для добавления Задачи к Курсы (а затем к этим задачам можно добавить Шаги ).Нам нужна форма, в которой есть поле для ввода LaTeX, а затем обработать TeX для создания нескольких проблем с их шагами.

В настоящее время мы делаем все это в * 1015.* Проблемы контроллер.У нас есть два метода, texnew , который идентичен новому, за исключением того, что он имеет другое представление, которое перенаправляет на другой новый метод: texcreate, , который использует вспомогательные методы для извлечения проблем и шагов (используя серию регулярных выражений), пытается их создать и выдает несколько информативных сообщений об ошибках, если что-то идет не так.

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

Есть ли какой-нибудь лучший / более идиоматический способ сделать это?

1 Ответ

1 голос
/ 08 июня 2011

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

...