Использовать вложенный контроллер или декларативную авторизацию для действий администратора? - PullRequest
0 голосов
/ 03 февраля 2010

Скажем, у меня есть приложение с несколькими моделями: сообщения, блоги, задачи и т. Д., И я хочу, чтобы администратор редактировал, удалял все сообщения пользователей, блоги, задачи, создавал ли я для каждого вложенный контроллер администратора или использовал декларативную авторизацию настроить учетную запись администратора, которая может редактировать / уничтожать пользователей, сообщения и т. д.

Я понимаю, что нет правильного ответа, я просто ищу самый простой и СУЩЕСТВЕННЫЙ способ сделать это.

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 февраля 2010

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

То есть я возьмуудар в том, что, я думаю, вы хотите спросить: должен ли ваш интерфейс администратора быть таким же, как ваш пользовательский интерфейс, но с несколькими кнопками для действий администратора?

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

Теперь представьте, если бы у вас была таблица комментариев по дате.

Что бы вы предпочли?

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

0 голосов
/ 03 февраля 2010

Я не совсем эксперт по рельсам, но я подумал, что эта статья хороша: http://www.contextualdevelopment.com/articles/2008/nested-controllers-and-resources Она указывает на некоторые преимущества использования вложенного контроллера в контексте администратора, который вы описываете.

Если я правильно понимаю, в обоих случаях вам нужен пользователь с ролью администратора, верно? Так что, вероятно, это больше о том, как структурировать контроллер. Настройка вложенного контроллера imho немного чище, потому что он сохраняет пару условий в «главном» контроллере. Вы просто помещаете все «admin» во вложенный контроллер, а все остальное в основной контроллер.

...