Rails: блокировка пользователя с помощью rout.rb

У меня есть специальный URL-адрес, к которому я хотел бы иметь доступ лишь немногим. У меня есть список суперпользователей, хранящихся в виде массива в app.yml. Как я могу использовать этот массив в разделе: Requirements определенного маршрута в файле rout.rb, чтобы разрешить доступ к этому маршруту только тем суперпользователям? Большое спасибо.

10.12.2008 09:49:47
2 ОТВЕТА
РЕШЕНИЕ

Нет, ты не можешь. :requirementsсвязаны только с параметрами маршрута.

Что, на мой взгляд, хорошая вещь. Хорошо известно соглашение о наличии логики аутентификации в контроллерах.

3
10.12.2008 09:57:23

Как сказал Педро, логика аутентификации должна быть в коде контроллера.
Взгляните на before_filters, где вы указываете методы, которые будут вызываться до (всех или указанных) действий в контроллере. Вы можете использовать такой метод, чтобы запретить выполнение действий. Посмотрите на раздел под названием Filter Chain останавливая здесь

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

map.geocode 'geocode/:postalcode', :controller => 'geocode',
              :action => 'show', :requirements => { :postalcode => /\d{5}(-\d{4})?/ }
3
10.12.2008 10:20:09