Когда использовать помощников вместо Partials
В приложении rails, в какой ситуации вы бы использовали частичное, и когда вы будете использовать помощник? Я нахожу оба очень похожими, поскольку они представляют фрагменты разметки.
Существует ли конвенция вокруг этого? который является "способом рельсов" их использования?
Спасибо!
Ответы
Ответ 1
Я предполагаю, что мое эмпирическое правило состоит в том, чтобы использовать помощника для создания единственного "единицы" отображения - например, диапазона, содержащего ссылку, и использовать частичное для построения более сложной единицы отображения, состоящей из более чем один "блок" отображения - как сетка или меню.
Ответ 2
Частичный - это фрагмент представления, фрагмент представления, который полезен в нескольких местах и вытащен, чтобы удалить дублирование. Однако нижняя линия состоит в том, что представления - автономные или частичные - предназначены для презентации.
Как вы знаете, контроллеры предназначены для обработки логики. Однако неизбежно, что вам понадобится некоторая логическая обработка при представлении представления. Так, например, если у вас есть часть презентации, доступная только администраторам, вы можете извлечь эту логику помощнику и сохранить представление "чисто" и "только для презентации". Помощники неизбежно будут содержать код презентации - теги html и т.д., Но это побочный продукт их использования, а не их основная функция.
Вы также можете комбинировать два - частичное для презентации администратора и другое для презентации пользователя и помощник с логикой, чтобы определить, какой из них отображается в конкретной ситуации.
Просто мои $.02.
Ответ 3
Другие ответы представляют собой концептуальный консенсус относительно использования помощников против частичных. Для дальнейшего чтения рассмотрите следующее:
Basecamp dev, делающий дело для минимизации HTML в помощниках
http://37signals.com/svn/posts/1108-what-belongs-in-a-helper-method
Viget dev тестировал каждый и обнаружил, что помощники быстрее, чем частичные
http://www.viget.com/extend/helpers-vs-partials-a-performance-question/
Ответ 4
Я использую помощники, когда код, вероятно, снова будет использоваться в других проектах, и частичные для кода, специфичные для проекта.
Ответ 5
Я использую partials как подтемы (т.е. что-то с большим количеством разметки, которое используется снова и снова, например, сообщение блога), и помощники для обработки более логичных вещей (div, которые видны только администраторам, для экземпляр).
Ответ 6
Частицы - часть представления, которая может иметь кучу HTML-кода вместе с ruby-кодом.
Вы также можете использовать частичные элементы в контроллере в методе рендеринга.
В случае помощников вы можете иметь методы для короткой HTML-кода. Вы можете использовать некоторые методы, связанные с вычислениями, которые вы хотите использовать в своем файле вида.