为什么这不适用于Spree

时间:2013-03-02 23:32:12

标签: ruby-on-rails activerecord override spree

我在修改spree中的函数时遇到问题。该函数称为copy_price

原始版本是这样的:

def copy_price
  if variant
    self.price = variant.price if price.nil?
    self.currency = variant.currency if currency.nil?
  end
end

如果我理解正确,只有当价格为空时才更新line_item的单价,我相信它不应该在订单页面内(订单完成后)。 我注意到,即使订单完成后,如果在管理部分内更改主价格,订单也会更改。

所以我认为copy_price函数应该受到责备,但每次我尝试修改它都没有变化。 E.g。

def copy_price
  @price_run = true
   self.price = 30.00
end

def get_price_run
  if @price_run == true
    return "true"
  else
    return "false"
  end
end

并在我的视图中调用get_price_run以打印出价格运行是否实际运行。并且它一直输出错误。有谁知道为什么会这样。

1 个答案:

答案 0 :(得分:0)

我已经找到了问题所在。只有在首次创建订单项时才会调用函数copy_price(例如,当您将其放入购物车时)。因此,当我试图查看是否在查看管理员订单页面时调用它时,它永远不会被调用。