You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidus 3.0修改默认货币为AUD后/admin/products页面报ArgumentError

问题原因

仅修改初始器中的默认货币配置未同步更新数据库中已有的价格数据,也未显式声明系统支持的可用货币列表,Admin产品页加载价格信息时无法匹配到对应货币的格式化规则,触发参数错误。

修复步骤
  • 第一步:补充可用货币配置
    在config/initializers/spree.rb的Spree.config代码块中添加可用货币声明:
    # 不需要保留USD支持的话可以仅保留'AUD'
    config.available_currencies = ['AUD', 'USD']
    
  • 第二步:同步数据库中已有价格的货币类型
    方案一(保留现有数据):
    生成迁移文件批量更新现有价格的货币标识:
    rails generate migration UpdatePricesCurrencyToAud
    
    编辑生成的迁移文件内容:
    class UpdatePricesCurrencyToAud < ActiveRecord::Migration[6.1]
      def change
        Spree::Price.update_all(currency: 'AUD')
      end
    end
    
    执行迁移:
    rails db:migrate
    
    方案二(全新项目无自定义数据):
    直接重置数据库,重建时会自动使用新配置的AUD作为默认货币生成样例数据:
    rails db:reset
    
  • 第三步:清理缓存重启服务
    rails tmp:clear
    rails s
    
验证

重启服务后访问http://localhost:3000/admin/products即可正常加载页面,产品价格会自动使用澳元规则格式化展示。

内容的提问来源于stack exchange,提问作者Kin Cheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:15:04