совместное использование частных методов через контроллеры - PullRequest
0 голосов
/ 02 июня 2011

Эй, ребята, у меня есть два контроллера, X и Y:

В X у меня есть: before_filter для частного метода, foo.

У меня также есть следующее утверждение в верхней части контроллера X.

helper_method: foo

В контроллере Y у меня есть: before_filter для частного метода, bar. В баре я зову Фу. Но, видимо, это недопустимо, поскольку я получаю неопределенную локальную переменную или ошибку метода. Я думаю, что мое объявление: helper_method должно позволять использовать foo в других контроллерах.

Вообще говоря, как я могу добиться вызова foo в контроллере Y? Есть ли способ сохранить конфиденциальность foo? Если нет, как это достигается (при соблюдении хороших принципов проектирования), если foo не является частным?

Спасибо!

1 Ответ

1 голос
/ 02 июня 2011

Если вам нужно foo в нескольких контроллерах, то вы должны поместить его в базовый контроллер приложения как защищенный метод.Это даст вам доступ к нему там, где оно вам нужно, и при этом не будет публиковаться в открытом интерфейсе.

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

...