Ruby on rails 使用acts作为购物车如何实现基本数量编辑?
acts\u as\u shopping\u cart gem需要两种模型-Ruby on rails 使用acts作为购物车如何实现基本数量编辑?,ruby-on-rails,ruby-on-rails-3,shopping-cart,acts-as-shopping-cart,Ruby On Rails,Ruby On Rails 3,Shopping Cart,Acts As Shopping Cart,acts\u as\u shopping\u cart gem需要两种模型-购物车和购物车项目 它允许您对项目进行如下访问的属性: <td><%= shopping_cart_item.item.name %></td> <td><%= shopping_cart_item.item.price %></td> <td><%= shopping_cart_item.quantity %></td
购物车
和购物车项目
它允许您对项目进行如下访问的属性:
<td><%= shopping_cart_item.item.name %></td>
<td><%= shopping_cart_item.item.price %></td>
<td><%= shopping_cart_item.quantity %></td>
\u shopping\u cart\u item.html.erb
部分内容如下:
<td><%= shopping_cart_item.item.name %></td>
<td><%= shopping_cart_item.item.price %></td>
<td><%= shopping_cart_item.quantity %></td>
非常基本的购物车-但不确定如何从这个购物车移动到实际的购物车,包括数量、大小等。数量: 实际上,我不知道
扮演购物车的角色以及它到底做什么。但无论如何,请看第117页中的“标准”实现。您可以将这些购物车偷到您的应用程序中,或者整个应用程序中。我想这本书是关于你的。:)
产品属性:
从一开始就澄清问题及其因业主要求而产生的潜在复杂性非常重要。这样你就不会有麻烦了
任何“属性”都必须仔细了解和分类。比如说,颜色在任何地方都是一种简单的颜色(在美国、非洲或欧洲,红色是红色),但大小却不是。什么尺寸?布料尺寸取决于区域尺寸、文化、布料类型等,可以是一个值(“M”、“S”或“46”),并取决于产品来源。。。3D的大小是3个数字(可以是英寸、厘米、米),取决于销售区域
因此,基于面向对象的思想,您必须在一个独立的ActiveRecord模型中编写每个产品的“属性”(该模型有许多产品项),但您必须确切地知道如何尽可能快地搜索它们
最后,我认为你完成了类似的事情
size = Size.new(:origin => :us, :value => "m")
size.origin
#=> "us"
size.value
#=> "m"
size.with_analogs # model knows how to translate sizes between each other
#=> [<self>, <#Size @origin: "europe", @value: 46>, <#Size. @origin: "europe", @value: 45.5>, <#Size @origin: "australia", @value: ...>]
或者你可以在数据库中存储常用的测量学习STI如何翻译它们,但这有点复杂
class Size
class EuropeSize < Size # STI
class UsSize < Size # STI
class AustraliaSize < Size # STI
...
班级规模
欧洲级
以下是我如何添加/编辑数量
在shop页面上,我创建了一个新的购物车,并将其id存储在会话中
将项目添加到购物车使用Ajax调用进行处理,Ajax调用将返回新的购物车项目html以更新标题中的div
在结帐页面上,每个项目都有数量编辑文本框李>
在更改数量时,我使用新的数量和产品标识(您可以使用购物车项目标识)进行ajax调用
嘿你试过什么?我们实际上使用spree作为结帐/购物车,并编写了两个API来连接到我们的核心应用程序。不过,我从未尝试过“装购物车”。在我们的内部订购系统中,我们唯一接近做到这一点的就是为产品使用嵌套字段。那适合吗???@simonmorley你不在整个店面上使用狂欢?只是推车?如果我能把spree用在购物车上,而不是整个店面上,我其实并不介意。可能吗?我想要的东西将允许供应商能够指定其各自产品的大小/颜色,然后允许用户简单地将其添加到购物车中并支付费用。想想最基本的结账流程(用户和供应商都可以自定义尺寸、数量和颜色)。我已经有了产品和供应商模型。没有,所有的都是这样,但我们适应了需要。你能粘贴更多的购物车视图代码吗?我会看看我能想出什么。@simonmorley完成了。cart的当前实现非常基本。我似乎错过了这个评论。谢谢你,特别是这本书的链接。非常感谢。我认为我的情况会有所不同,因为我可以将它们限制在一组标准尺寸(即大、大、小或10、12、14等)。我的意思是这个答案。多谢。
product = Product.find(1)
Product.where(:name => "%#{product.name}", :size => {:id => [product.size.with_analogs.map(&:id)]})
class Size
class EuropeSize < Size # STI
class UsSize < Size # STI
class AustraliaSize < Size # STI
...