Чтобы добавлять сообщения и комментарии, .

@vessi:
vessi

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

@vessi:
vessi

Spree СДЕЛАЕТ из тебя склонного к насилию психопата. Если ты еще не.

@vessi:
vessi

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

@rb:
rb

Какой денежный шлюз сейчас в моде? Посмотрел на Робокассу, но к ней уже никто 9 месяцев не притрагивался на github.com.

@vessi:
vessi

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

@rb:
rb

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

@rb:
rb

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

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

@rb:
rb

Презентация Spree 1.0 с конференции 2012 года. Свежак!

speakerdeck.com

@rb:
rb

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

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

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

@rb:
rb

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

@moh:
moh

Похоже, что с тех пор, когда я последний раз пытался найти подход к spree, его документация стала гораздо лучше.