我计划推出一个网站,作为一种快递服务,客户要求我的公司从其他国家/地区找到某个产品(例如行动人物)。
Spreecommerce(包括一些扩展)提供了我所需的几乎所有功能。
购物车,支付系统,CMS,开放认证,评论系统。
还有一个重要的功能,即查询系统。有了这个系统,客户可以要求他们想要的某些产品。
他们将使用的表格将包含以下信息:
我的想法是,用户将被呈现将有一个表单,当提交管理员可以查看。管理员可以查看/修改查询并使用评论系统进行响应。找到并确认该项目后,管理员将创建一个产品并将其添加到用户的购物车中,用户可以使用正常的狂欢订单结帐系统完成该购物车。
所以我对系统的修改是: - 为客户和管理员添加查询表(管理员可以以客户的名义进行查询) - 将产品设为私人订购用户 - 禁用用户的“产品”页面,因为每个产品对每个用户都是唯一的
我正在创建“查询表单”页面。我查看了spreecommerse文档,似乎没有关于添加新页面并将其集成到系统中的说明。该文档更侧重于修改当前页面。
因此,我决定查看一个实现了类似功能的项目,并模仿它所做的事情。
我选择 spree-contrib / spree_static_content 。所以我做的是:
使用spree_products表作为指南创建查询迁移,并提供以下信息:
在app / views / spree / admin下创建了以下视图(这些视图大多是产品视图的简化版本):
查询/ new.html.erb
共享/ _enquiries_sidebar_menu.html.erb
要在管理部分添加菜单项:
创建一个空 EnquiriesController ,它继承自 Admin :: BaseController
创建了一个继承自Spree :: Base的查询模型,该模型基于Products模型。
到目前为止我感到困惑的是:
如果有关于如何正确创建此类功能的任何教程,我们将非常感激。
答案 0 :(得分:1)
你在这里有个好的开始。你到目前为止缺少的是路线
spree.admin_ {name}存储了_url值?
...如果您的控制器继承自spree.
或Spree::StoreController
,则您不一定需要使用Spree::AdminController
命名空间进行路由。 Spree基本控制器提供了许多有用的CRUD逻辑。在您的情况下,您需要一个看起来像这样的routes.rb文件:
Rails.application.routes.draw do
mount Spree::Core::Engine, :at => '/'
end
Spree::Core::Engine.add_routes do
#public enquiries, e.g. that inherit Spree::StoreController
get 'enquiries', :to => 'enquiries#index', :as => :enquiries
end
Spree::Core::Engine.add_routes do
namespace :admin do
resources :enquiries
end
end
Hottip:查看spree_scaffold gem。它使模型/控制器/视图/路线快速删除