Как мы можем переопределить ActionController в рельсах, чтобы распространить определенные методы? - PullRequest
0 голосов
/ 07 февраля 2010

У меня есть код аутентификации, который будет доступен через несколько контроллеров. Поэтому я подумал о том, чтобы поместить код аутентификации в суперкласс, а затем заставить все другие контроллеры расширять этот суперкласс. Затем я узнал, что мы можем добавить его в сам класс ActionController. Как мы можем сделать это? Есть ли способ изменить предопределенный класс?

Ответы [ 3 ]

1 голос
/ 07 февраля 2010

Вы должны добавить методы в класс ApplicationController, который находится в app / controllers / application_controller.rb и является прямым суперклассом всех контроллеров вашего проекта (при условии, что вы создали свои контроллеры с помощью script / generate и не изменили суперкласс).

1 голос
/ 07 февраля 2010

На самом деле все ваши контроллеры уже должны наследовать от ApplicationController, который, в свою очередь, наследуется от ActionController::Base. И включение кода аутентификации в ApplicationController довольно идиоматично, на самом деле.

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

Все контроллеры уже расширяют ApplicationController, поэтому просто добавьте метод авторизации и before_filter, вызывающий этот метод в вашем ApplicationController, и все будет настроено для всех ваших контроллеров.

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