从Rails应用程序与Spree的购物车/产品进行互动的好方法是什么?

时间:2012-11-10 05:16:13

标签: ruby-on-rails ruby-on-rails-3 spree

我正在将Spree用于现有的应用程序。在我的应用程序页面中,要显示我正在使用分类单元ID访问Spree :: Product的产品子集。与订单相同:从应用程序代码我做“Spree :: Order.find(session [:order_id])”(所以我可以在Spree页面之外的购物车中显示#项目)

这看起来很重要......我应该自定义Spree(重写一些页面),还是将其作为单独的实例进行旋转并进行API调用等?

谢谢!

2 个答案:

答案 0 :(得分:2)

Spree有一个名为Spree::ControllerHelpers::CurrentOrder的模块,您可以将其包含在ApplicationController中。这将使current_order方法适用于您的应用程序的所有视图。

答案 1 :(得分:0)

你的问题不是很清楚(我不确切地知道你想要实现的目标)而且我不太了解Spree,但这里有一些答案。

  • 覆盖视图(通常适用于大多数命名空间的插件和引擎),只需在主应用程序树中删除具有相同名称和路径的文件,例如,如果您要覆盖products/show.html.erb,只需将其放入app/views/spree/products/show.html.erb即可。请注意,您的视图将从相应的狂欢控制器呈现,因此您可能无法访问常用的帮助者

  • 覆盖控制器也是如此。如果您只想进行一些自定义,也可以使用继承...

  • 在您的一个内部渲染狂欢视图只需使用render :file =>并指出gem内部的正确路径。

就是这样,你需要的唯一另一件事是dive a bit inside the spree gem,以便知道你要覆盖哪些文件/你要继承哪些类。关于engines的一点阅读也不会受到伤害。