Что должен содержать класс контроллера в Ruby on Rails? - PullRequest
2 голосов
/ 06 февраля 2012

Я создаю веб-приложение для викторины, поэтому необходимо администрировать вопросы (добавлять, изменять и т. Д.), И пользователи будут просматривать коллекцию и возможные вопросы о добавлении, сообщении и т. Д.

Теперь, если бы я создал контроллер вопросов, он содержал бы все действия (методы) для решения вопросов (как public, так и admin), или это тот случай, когда вы делаете два контроллера?

Может ли кто-нибудь объяснить, когда мне следует создавать новые контроллеры вместо того, чтобы просто добавлять действия к одному существующему?

И если бы я сделал два контроллера, я бы в конечном итоге продублировал много кода. Должен ли я сделать базовый класс?

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

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

В вашем случае я бы реализовал все виды вопросов в одном контроллере (например, с именем "questions_controller.rb"), а внутри я бы применил фильтр для аутентификации пользователей-администраторов при запросе вопросов администратора.

Вполне вероятно, что вам понадобятся другие контроллеры для вашего приложения, такие как статические страницы (контакт, информация), сеансы (вход, выход из системы), участники (регистрация, профиль) и т. Д.

О базовом классе, конечно! Если вы повторяете методы, это было бы хорошим решением. Rails это просто Ruby.

0 голосов
/ 06 февраля 2012

Создание двух контроллеров не обязательно, если вы рассматриваете администратора как обычных пользователей.Если вам нужен специальный пользователь для администрирования вопросов от имени администратора, необходимо создать два контроллера!

Это мои варианты.Надежда может помочь вам!

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