我正在将Spree用于现有的应用程序。在我的应用程序页面中,要显示我正在使用分类单元ID访问Spree :: Product的产品子集。与订单相同:从应用程序代码我做“Spree :: Order.find(session [:order_id])”(所以我可以在Spree页面之外的购物车中显示#项目)
这看起来很重要......我应该自定义Spree(重写一些页面),还是将其作为单独的实例进行旋转并进行API调用等?
谢谢!
答案 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的一点阅读也不会受到伤害。