Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby: Общие вопросы > Routing


Автор: PFOcChKen 6.2.2007, 15:05
Здравствуйте, уважаемые форумчане.


У меня к вам такой вопрос: от клиента приходит запрос, в файле routes.rb поисходит обработка этого запроса и перенаправление его на нужный контроллер. А можно ли где-то обрабатывать каждый запрос, который приходит, чтобы ну скажем делать какие-нить проверки, то есть в файл routes.rb вставить что-то на подобие глобального before_filter и выполнять в нём какие-нить действия. То есть нужен глобальный перехват request, и его обработка. Подскажите как такое можно реализовать и где можно вставить подобный фильтр.


Заранее спасибо за ответы.


P.S.: Вставка подобного фильтра в application_controller не подходит...

Автор: PFOcChKen 8.2.2007, 15:44
Народ!!! Ну ответьте хоть что-нить, может какие-нить подходы, никто не сталкивался с подобной задачей? Или мне как-то уточнить вопрос и он совсем не понятен?

Автор: max_lapshin 28.2.2007, 16:43
Вопрос не понятен. Ответ скорее всего будет таков: почитать исходники, благо они очень понятные.

Автор: Alone 2.3.2007, 17:59
поясните детальнее вопрос, ибо непонятно что именно скрыто под обработкой реквеста.
ну, какого рода действия? 
вам на этом этапе реквест нужен для анализа или для изменения содержимого?

Автор: PFOcChKen 6.3.2007, 13:26
Впринципе проблему решил в итоге через application_controller, повесил в нём фильтр с функцией которая проверяет реквест(так как от него наследуются почти все контроллеры, то он и вызывается каждый раз при обращении, что и требуется...), но как-то некрасиво это...


А задача была такая: есть поступающие от юзера реквесты, требуется сделать анализ реквеста - ну например, насколько часто юзер обращается к тому или иному адресу, если юзер проходит проверку, то счётчик для этого юзера увеливается на 1. Условия на соответствие поступающего реквеста, тем которые необходимы хранятся в yml-файле ввиде регулярных выражений. Вот и требуется как-то перехватывать абсолютно все реквесты, чтоб иметь возможность их обрабатывать.

Может знает кто более элегантное решение, чем через application_controller? Задача впринципе решена, но интересно на будущее.



Заранее спасибо за ответы.

Автор: max_lapshin 6.3.2007, 18:52
Именно там этому и место. А задачу надо озвучивать заранее вместо того, что бы пытаться выяснить, как реализовать ее решение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)