Вся идея гемов в том, что они представляют собой механизм распространения пакетов, который вы можете использовать вместо кода копирования.
Большинство современных языков имеют своего рода распределение пакетов.Выбранный менеджер пакетов Ruby: Bundler .
. Он всегда должен использоваться вместо вставки копии, потому что:
- Вставка копии подвержена ошибкам и утомительна.
- Вы не будете раздувать свой репозиторий кода с помощью кода поставщика, который упрощает поддержку.
- Менеджеры пакетов могут выполнять разрешение дерева зависимостей, чтобы гарантировать совместимость ваших зависимостей друг с другом.
- Это не 1995 год, и копирование библиотеки поставит под сомнение вашу компетентность.
Если вам по какой-либо причине нужно изменить гем, вы можете раскошелиться на репозиторий и сказать сборщику использовать вашвилка.Но в большинстве случаев это последнее средство, поскольку Ruby является чрезвычайно гибким языком.
У меня вопрос: нужно ли мне скопировать все контроллеры и маршруты со страницы greeub Spree, а затем перезаписать их, или они уже есть? "загрузился "через двигатель"
нет.Просто установите камень.По всей вероятности, он очень настраиваемый и предоставляет опции, позволяющие настроить его по своему усмотрению, без изменения какого-либо кода драгоценных камней.
Или во многих случаях вы можете просто использовать объектно-ориентированное программирование для настройки своегособственные подтипы контроллеров, предоставляемые гемом.
Deface используется для изменения представлений после их рендеринга.По сути, это более совершенная версия использования регулярных выражений, и, следовательно, довольно хакерская, если проблема может быть решена в первую очередь с помощью партиалов или помощников, чтобы сделать код более модульным.Это не имеет ничего общего с маршрутами или контроллерами.