【问题标题】:Cart Array trouble, cart.total_price购物车数组麻烦,cart.total_price
【发布时间】:2012-05-31 22:47:12
【问题描述】:

我正在为 RoR 中的一个网站编写一个购物车系统,但我的购物车有一个奇怪的问题。

我已经用相同的购物车模型制作了另一个应用程序并且没有这个问题。

所以情况如下:

  • 将产品添加到我的购物车,没关系。
  • 写cart.total_item,没关系。
  • 写入 cart.total_price,失败。

我的应用告诉我我试图用来计算 'cart.total_ price' 的 'method' 是 '未定义'。

这是记录:

显示 /var/rails/caveSACMS/app/views/catalogues/index.html.erb 其中第 196 行提出:

#<0x00000005ce09f0>


    标签: ruby-on-rails methods sum undefined shopping-cart


    【解决方案1】:
    product = CsaV3Prd.find(:all,{:select=>["prod_wid, prod_cid, prod_pxuttc"],:conditions=>["prod_cid = ?","#{params[:to_add]}"],:order=>"prod_cid DESC"})
    

    返回一个数组(可能包含一个元素),而不是一个产品。如果您只想要一项,请使用find :first

    您还可以从您提供的会话转储中看到这一点,您可以在其中看到 @items 是一个数组数组(看看它是如何以 [[ ? 开头的)

    与您的问题无关,但

    :select=>["prod_wid, prod_cid, prod_pxuttc"]
    

    工作可能是一个意外(由于 Array#to_s 所做的),你可能应该做的是

    :select=>"prod_wid, prod_cid, prod_pxuttc"
    

    【讨论】:

    • 我在我的第一个应用程序上使用了相同的方法(除了 :select 只获取需要的信息),我可以毫无问题地使用 total_price 函数。
    • 这完全取决于您对该返回值的处理方式 - 如果您将其视为单个产品,它将无法工作,因为它不是 - 它是一个数组(另请注意,即使当你解决了这个问题,你的购物车仍然包含错误数据 - 你需要清除它)
    • 我想从所选项目返回“prod_pxuttc”值。然后我需要渲染一个“总价”值,(价格值 = prod_pxuttc)。但我无法退回购物车中存储的任何东西。我不明白为什么我不能,因为我已经在另一个应用程序上使用了这个购物车,并且在这个其他应用程序上一切正常。
    • 我已经尝试解释了几次 - 购物车没有任何问题 - 这是您放入购物车的内容:数组而不是单个对象。
    • 是的,它是一个数组,但是这个数组只能有一个对象。你能告诉我如何通过提供一个选择参数(如 ID)从我的表中选择一个对象吗?
    猜你喜欢
    • 2014-06-11
    • 2015-06-09
    • 1970-01-01
    • 2011-08-18
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多