to post messages and comments.

в результате работы изначальный Spree (выбор его был ошибкой IMHO, но об этом отдельно) переколбашен в огромном количестве мест.
в некоторых местах я поражен количеством говнокода. логика во вьюхах, размазанные по огромному количеству мест обработки, адовый метод перевода имени продукта в permalink.
Spree использует для пермалинков to_url, который заменяет мягкий знак на апостроф. И естественно, не экранирует возвращаемый результат. В результате, невозможно добавить продукт, если в его имени присутствует мягкий знак.
Адочек же, ну.

иногда очень хочется, чтобы код Spree писали так, как будто его будет сопровождать склонный к насилию психопат, который знает, где живут разработчики.
потому что то, что там внутри сейчас — превращается в голоса в моей голове. и они призывают меня к убийству каждого, приложившего руку к этому коду.

жуйк, есть одна проблема, суть токова:
есть аппликуха. она использует гем spree. как описано в spree docs, логика расширяется посредством декоратора с class_eval.
а теперь, внимание, вопрос: есть ли какая-то методика проверки, что декоратор не поломал существующий функционал?

Hook'и в Spree 1.0 признаны устаревшими (depricated), но пока еще поддерживаются. Рекомендуется использовать явный вызов Deface::Override. Оно и к лучшему... у Deface возможностей гораздо больше.

По вопросу #1778078 буду сам себе отвечать. Hook'и по прежнему работают. Список hook'ов можно посмотреть, если вызвать Spree::ThemeSupport::HookListener.migratable_hooks

Посмотрел внутрь, а там все тот же старый-добрый Deface. Можете сами посмотреть: github.com

Проблема описанная в #1769963 решается тем, что роуты надо задавать по особому. В конец файла routes.rb нужно добавить следующий код:

Spree::Core::Engine.routes.append do
# маршрут, который ходите добавить
end

После этого все таинственным образом начинает работать.

У кого есть опыт работы с Spree? Как там правильно роуты добавлять? А то роуты добавляю, а методы вроде _url и _path отсутствуют (хотя сервер на адреса по роутам нормально отвечает). Куда копать?