Почему доступ к закрытым вспомогательным методам по-прежнему возможен во взглядах?
Еще один вопрос "почему так": я заметил, что к частным вспомогательным методам по-прежнему можно получить доступ в представлениях. Почему так? И есть ли способ предотвратить это (например, когда у вас есть вспомогательные методы, которые следует вызывать только из другого помощника)?
Ответы
Ответ 1
Помощники - это модули, которые смешиваются в представлениях. Это означает, что общедоступные, защищенные и частные методы в помощнике становятся общедоступными, защищенными и частными методами в представлениях.
Я не думаю, что вы можете скрыть вспомогательные методы из представления. Вам нужно будет сделать что-то вроде класса-помощника, который вы создаете в помощнике, а затем делегируете на него вызовы - похоже, что это может стать беспорядочным, хотя.:)
Ответ 2
Помощники - это в основном небольшие фрагменты кода, которые можно вызвать в ваших представлениях, чтобы помочь сохранить ваш код DRY - то есть любой код, который вы повторяете регулярно, скорее всего, будет перенесен в помощника.
Использование помощников прост, каждый контроллер имеет свой собственный вспомогательный файл, или вы можете написать помощники в вспомогательном файле приложения, если он будет использоваться во всем приложении.
например - см. http://paulsturgess.co.uk/articles/49-using-helper-methods-in-ruby-on-rails