如何在狂欢中切换用户的货币?

How can I switch the currency of a user in spree?

在我的 spree 商店中,我已将货币设置从美元更改为澳元,这似乎最有效,但对于现有用户而言,当将商品添加到购物车时,购物车显示旧的美元价格,尽管显示的是新澳元添加到购物车前的价格。

检查 rails 控制台中的订单显示订单仍设置为美元,新用户的订单设置为澳元。我如何更改它以便所有用户现在都使用新货币?

在order.rb中有一个before_validation

before_validation :set_currency

此方法的代码是

def set_currency
  self.currency = Spree::Config[:currency] if self[:currency].nil?
end

此处货币只有在不存在时才设置为默认货币,因此如果您希望所有活动订单都使用您通过常规设置设置的新货币进行修改,您可以修改上述方法以确保它始终验证前设置货币。

def set_currency
  self.currency = Spree::Config[:currency]
end

如果您仍然遇到任何问题,请告诉我