2012-11-10 1 views
1

Я болтаю Spree на существующем приложении. На страницах моего приложения для отображения подмножества продуктов я использую идентификатор таксона для доступа к Spree :: Product. То же самое с заказами: из кода приложения я делаю «Spree :: Order.find (session [: order_id])» (так что я могу отображать # элементов в корзине за пределами страниц Spree)Что такое хороший способ взаимодействия с тележкой/продуктами Spree от приложения Rails?

Это кажется тяжелым. .Если я должен настраивать Spree вместо этого (переписать некоторые страницы) или развернуть его как отдельный экземпляр и сделать вызовы API и т. д.?

Спасибо!

ответ

2

Spree имеет модуль под названием Spree::ControllerHelpers::CurrentOrder, который вы можете включить в свой ApplicationController. Это сделало бы метод current_order доступным во всех представлениях для вашего приложения.

+0

Как человек делает эту работу? Я пытаюсь включить этот модуль в application_controller.rb и каждый раз получать ошибку '' 'uninitialized constant Spree :: Core :: ControllerHelpers :: CurrentOrder'''. – wrburgess

+0

@wrburgess: Какая версия Spree? –

+1

Обратите внимание, что модуль недавно изменил имена только на «Заказ»: https://github.com/spree/spree/blob/master/core/lib/spree/core/controller_helpers/order.rb –

0

Ваш вопрос не очень ясен (я не знаю точно, чего вы пытаетесь достичь), и я не очень хорошо знаю Spree, но вот некоторые элементы ответа.

  • переопределить вид (как правило, работает с большинством пространств имен плагин и двигателями), просто уронить файл с таким же именем и путем в вашем главном приложении дерева, например, если вы хотите, чтобы переопределить products/show.html.erb, просто бросьте его в app/views/spree/products/show.html.erb. Будьте осторожны, ваша точка зрения будет оказана из соответствующего контроллера загулял, так что вы не можете иметь доступ к своим обычным помощникам

  • переопределить контроллер сделать то же самое. Вы также можете использовать наследование, если вы хотите просто немного настройки ...

  • , чтобы сделать вид Шпрее внутри одной из твоих просто использовать render :file => и указать на правильный путь внутри камня.

это все, единственное, что вам нужно, чтобы dive a bit inside the spree gem для того, чтобы знать, какие файлы вы хотите заменить /, какие классы вы хотите наследовать. Немного почитать о engines тоже не повредит.

Смежные вопросы