Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用acts作为购物车如何实现基本数量编辑?_Ruby On Rails_Ruby On Rails 3_Shopping Cart_Acts As Shopping Cart - Fatal编程技术网

Ruby on rails 使用acts作为购物车如何实现基本数量编辑?

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

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>
\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
    
    ...