какой лучший способ сделать следующее - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть приложение rails 3, которое отображает записи из БД в таблицу. Я хочу, чтобы тот же метод проверял, используется ли контроллер администратора, и если да, добавьте опции редактирования, удаления и удаления элементов таблицы.

Пример: залогинен на сервере без администрирования / home / list_info

  • Некоторая информация имя адрес
  • Дополнительная информация имя адрес

Вы вошли как администратор сервера / admin / list_info

  • Некоторая информация имя адрес Редактировать Удалить
  • Дополнительная информация имя адрес Редактировать Удалить

В настоящее время у меня есть два контроллера и два метода просмотра, метод admin - это просто копия со ссылками Edit Delete в конце. Это не кажется СУХОЙ для меня. Что людям делать в этой ситуации?

Большое спасибо Andy

1 Ответ

1 голос
/ 02 декабря 2010

Я думаю, что лучший способ - это иметь один набор контроллеров / представлений и просто посмотреть, является ли текущий пользователь администратором. Если да, показать ссылки редактирования / удаления.

Как правило, вы можете использовать Devise для аутентификации и CanCan для авторизации.

Devise предоставляет объект current_user, поэтому, если вы реализуете метод admin?, вы можете использовать что-то вроде

<%= link_to_if current_user.admin?, 'Delete', ... %>

Примечание: в приведенном выше примере используется только Devise, а не CanCan.

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