Каково различие между помощником и частичным?

Я думаю, что характер ваших критериев удаления (в частности, то, что вы просто хотите немедленно drop() дубликаты, с которыми вы сталкиваетесь) позволяет нам использовать модификацию шаблона обнаружения дублирующих краев , описанного в Гремлин Рецепты.

gremlin> g.V().as('ov').
......1>   outE().as('e').
......2>   inV().as('iv').
......3>   sideEffect(inE().
......4>              where(neq('e')).
......5>              where(eq('e')).by(label).
......6>              where(outV().as('ov')).
......7>              where(eq('e')).by('prop1').drop()).iterate()
gremlin> g.E()
==>e[0][1-link->2]
==>e[3][2-link->3]
==>e[7][2-link->3]
==>e[8][3-link->4]

Общий шаблон отклоняется, так как вам не нужно «обнаруживать» дубликаты (таким образом, затраты на группировку и фильтрацию количества не нужны), вы просто заботитесь о немедленном удалении любых дубликатов, которые соответствуют вашим критериям.

Единственное, что может быть хитрым, это то, что конкретный граф, который вы используете, особенно стремится оценить шаги обхода. Другими словами, если вы drop() ребро, оно сразу удаляется из будущей итерации в строках 1 и 3? Если нет, это может означать некоторые проблемы. Однако большинство графиков работают, как показано ниже (я тестировал на TinkerGraph), поэтому, возможно, этот подход подойдет вам.

13
задан Tom Lehman 11 March 2009 в 05:50
поделиться

2 ответа

Помощники и partials оба предназначаются, чтобы использоваться в Вашем слое представления. Различие - то, что помощники являются, прежде всего, кодом Ruby, предназначенным, чтобы использоваться в качестве библиотеки методов для вызова из шаблонов. Partials являются .html.erb файлами, содержащими частичные шаблоны, которые могут быть вставлены в Ваши основные шаблоны. Таким образом короче говоря, логика должна войти в помощников, и допускающие повторное использование отрывки HTML (с минимальной встроенной логикой) должны быть в partials.Надеюсь, это поможет!

24
ответ дан 1 December 2019 в 21:12
поделиться

Решение не чисто эстетично. Вы хотите использовать помощников в своих представлениях. Например, Вы использовали бы частичное для генерации HTML для продукта, но в этом неравнодушном (или любое другое представление), Вы могли использовать помощника для генерации части частичного, которому, возможно, нужна некоторая логика для определения точно, что отобразиться.

3
ответ дан 1 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: