расположение помощников рельсов - PullRequest
1 голос
/ 08 мая 2011

Я сделал простой помощник с одной функцией и поместил его в соответствующий controller_helper, и я заметил, что функция действительна для всех представлений приложения.

Почему это так?не должен ли помощник быть действительным только для своего контроллера?

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Процесс выглядит следующим образом:

Если вы находитесь в представлении, принадлежащем контроллеру foo, и вызываете помощника с именем my_helper:

  • если определено в хелпере foo, оно выполняется отсюда

  • , если не определено в хелпере foo, но определено в другом хелпере, скажем bar, оно выполняетсятам

  • если не в foo, ни в каком-либо bar, это проверено в application_helper.Если его здесь нет, возникает ошибка.

0 голосов
/ 28 мая 2012

Это имело бы смысл, но это не полная история. У меня есть контроллер MainController и контроллер AlsoController, и я определил помощника с тем же именем wherefrom в каждом из модулей помощника, т.е. MainHelper и AlsoHelper. Но если я пытаюсь использовать wherefrom в представлении also, он использует помощник, определенный в MainHelper, а не помощник в AlsoHelper.

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