Подтвердить что ты не робот

Когда использовать помощников вместо Partials

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

Существует ли конвенция вокруг этого? который является "способом рельсов" их использования?

Спасибо!

4b9b3361

Ответ 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-кода. Вы можете использовать некоторые методы, связанные с вычислениями, которые вы хотите использовать в своем файле вида.