在 Spree (RoR) 中保存产品时,价格会乘以 100

2024-03-20

我在 Rails 3.1.3 和 Ruby 1.9.3 之上安装了在线购物框架 Spree。我还使用 Spree_i18n gem 来本地化商店。现在,每当我保存产品时,价格都会乘以 100。

例如,在管理区域中,我输入价格 3.20。结果是值 320。如果我再次保存,它会更改为 32000,依此类推。

这是我本地化的 de_numbers.yml 供参考:

---
de:
  number:
    currency:
      format:
        format: "%u%n"
        unit: "€"
        precision: 2
        separator: '.'
        delimiter: ','

我想不出我的设置有什么不寻常的地方,所以我想知道为什么这不是一个常见问题。任何帮助将不胜感激。


EDIT:

狂欢核心:产品表单不处理显示与 I18n/本地化相关的product.price 和product.cost_price。要修复此问题以适合您,您需要修改核心。我将向 Spree Core 团队发布有关此问题的信息,但在此期间,我已经测试了此修复程序,它应该可以工作。

In /gems/spree_core-1.0.0/app/views/spree/admin/products/_form.html.erb,您将需要修改这些行:

<%= f.text_field :price, :value => number_with_precision(@product.price, :precision => 2) %>

是这样的:

<%= f.text_field :price, :value => number_with_precision(@product.price, :precision => I18n.t('number.currency.format.precision'), :separator => I18n.t('number.currency.format.separator'), :delimiter => I18n.t('number.currency.format.delimiter')) %>

和这个:

<%= f.text_field :cost_price, :value => number_with_precision(@product.cost_price, :precision => 2) %>

是这样的:

<%= f.text_field :cost_price, :value => number_with_precision(@product.cost_price, :precision => I18n.t('number.currency.format.precision'), :separator => I18n.t('number.currency.format.separator'), :delimiter => I18n.t('number.currency.format.delimiter')) %>

本质上,我们正在让它处理国际化的潜在价值。

原来的:

我已经准确地复制了您的文件,并尝试了一些测试来重新创建它(创建新产品、新产品变体、更改产品价格、成本价等)。要重新创建它,您需要创建一个 de_numbers.yml,并在 Spree 初始值设定项中使用“config.default_locale = 'de'”将您的本地化翻转为“de”

以下是一些建议的修复方法:

  1. 确保运行捆绑安装
  2. 在您的 Gemfile 中,确保您使用的是最新版本的 i18n (

gem 'spree_i18n', :git => 'git://github.com/spree/spree_i18n.git')

  1. 将空格修复为 2 个空格,而不是制表符(这是可能存在空白问题,无法读取您的 i18n 值)
  2. 进入 Rails 控制台,并注销这些值(即

I18n.t('数字.货币.格式.单位')

  1. 尝试先让它在“en”区域设置中工作,然后在“de”区域设置中工作。
  2. 首先将您的值放入“de.yml”或“en.yml”中,然后在放入“de_currency.yml”文件之前查看它们是否有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spree (RoR) 中保存产品时,价格会乘以 100 的相关文章

随机推荐

  • 无法传递给 C 代码 - 虚拟环境' aria-label='对象类型 无法传递给 C 代码 - 虚拟环境'> 对象类型 无法传递给 C 代码 - 虚拟环境

    我正在使用 Mac Anaconda 我尝试使用加密货币的 AES 然而 我面临一个奇怪的问题 我只想执行一行简单的代码 obj AES new This is a key123 AES MODE CBC This is an IV456
  • MVC 相当于 ASP.NET 按钮单击事件

    我需要创建一个与 ASP NET 中的按钮单击事件等效的页面 在我的页面上 当用户单击按钮时 我需要处理一些信息 如果发生错误 则显示错误页面 但如果成功 我需要显示成功页面 我是 MVC 的新手 我不知道如何解决这个问题 这就是我到目前为
  • C# 和箭头键

    我是 C 新手 正在现有应用程序中做一些工作 我有一个 DirectX 视口 其中包含我希望能够使用箭头键定位的组件 Currently I am overriding ProcessCmdKey and catching arrow in
  • 需要建议在 Javascript 中应用 .disabled

    我运行 Woocommerce 网站并希望禁用结帐页面上的特定输入 Woocommerce 可以按国家 地区设置运输方式 我将默认国家 地区设置为韩国 并且显示韩国的运输选项 但是 如果我选择美国 运输方式将看到根据美国的运输选项 因此 默
  • 在闪亮的仪表板中从 R 访问 javascript 对象

    SO 有很多闪亮的问题询问如何在 UI 中使用输入值 一般答案是使用updateSelect 家庭或使用renderUI 我知道基本上不可能从输入列表中访问值 input 在 UI 中 因为输入列表仅传递到服务器 因此不存在于 UI 环境中
  • 我可以在 Netlify 中通过 Create-React-App 使用构建环境变量吗?

    如何在 Netlify 中通过 Create React App 使用构建环境变量 You CAN在你的环境变量中使用create react app在 Netlify 上 但 Create React App 的所有构建限制仍然适用 默认
  • Angular 有像 extjs 那样的弹性布局吗?

    ExtJS 有一个非常有用的布局机制 称为 Flex 它的工作原理是将行或列中的所有内容相加 然后使用弹性值除以所有弹性值的总和来分配空间 这会产生如下所示的布局 红框是水平盒布局 块 E 和 F 的给定弹性值之和为 3 因此 E 为屏幕宽
  • sed 中“保持空间”和“模式空间”的概念

    我对 sed 中的两个概念感到困惑 保留空间和模式空间 有人可以帮忙解释一下吗 这是手册的一个片段 h H Copy append pattern space to hold space g G Copy append hold space
  • Python 从同一包中的文件导入 __init__.py 中的类

    我觉得我应该知道这一点 因为我已经用 Python 编程这么久了 但我一直在不断学习关于这种精美语言的新知识 我的问题 很可能是重复的 但我无法找到相同的案例 是这样的 我有这样的文件布局 websocket init py client
  • 带有 QML 的 FbxGeometryLoader

    我想将 fbx 文件导入到我的Scene3D https doc qt io qt 5 11 qml qtdatavisualization scene3d html 通过QMesh https doc qt io qt 5 11 qt3d
  • Linux下与CashCode纸币接受器通信

    我已经实现了 CCNET 协议 以便通过 Linux 上的软件与 CashCode 纸币接受器进行通信 最初 我花了很多时间试图弄清楚为什么设备不响应 我发送的命令 使用反复试验的方法 我找到了为串行端口设置以下选项的解决方案 stty F
  • 我可以在不注销的情况下获得更新的 emailVerified 吗?

    我的注册流程如下 用户填写详细信息并注册 收到发送验证电子邮件 该用户登录后 但看到一个屏幕 要求进行电子邮件验证 用户验证他们的电子邮件并返回应用程序 在这个阶段我怎样才能获得新的用户数据emailVerified字段而不注销用户 我期望
  • Linux:大型 int 数组:mmap 与查找文件?

    假设我有一个数据集 它是存储在 4TB HDD ext4 文件系统上的文件中的 1e12 32 位整数 4 TB 数组 考虑到数据很可能是随机的 或者至少看起来是随机的 pseudo code for long long i 0 i lt
  • ElasticSearch 聚合可以做 SQL 可以做的事情吗?

    在 Elasticsearch 中 我需要获取从最高到最低出现最频繁的颜色的频率和数量 如果我有这样的数据 id name 1 blue 2 blue 3 green 4 yellow 5 blue 6 yellow 7 purple 8
  • 我可以将服务注入到 Grails 的过滤器中吗?

    我有一项服务可以在会话中获取和设置用户 如果有登录用户 我想将一些用户信息传递给每个视图 并认为过滤器是最好的方法 这样我就不必在每个控制器 操作中重复该信息 当我运行该应用程序时 出现以下错误 Error creating bean wi
  • 如何在所有字段名称中过滤 C# dataGridView?

    I see 在这个视频中 http www youtube com watch v 2h7C IL FB8添加文本框并让它驱动 datagridView 的过滤非常容易 问题在于该视频中 您似乎必须指定要根据哪一列进行过滤 RowFilte
  • 错误:“getGamesClient() 未定义” - 尝试运行 Google 的示例游戏

    我正在尝试运行 Google Game Play Services 示例here https github com playgameservices android samples tree master 8BitArtist 我已按照指示
  • 为温莎城堡中的所有接口实现注册拦截器

    我对温莎城堡相当陌生 特别是使用拦截器 我想知道是否可以在特定接口的所有实现中注册拦截器 而无需依次指定每个实现 例如 我有一个名为IComponent这将由许多班级实施 我有一个ComponentInterceptor编写的类在这些类执行
  • java中线程池的类型[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 java中的线程池有哪几种类型 我需要实现一个强大的多线程应用程序 该应用程序使用大量计算 我应该使用哪个线程池 java中有多种线程
  • 在 Spree (RoR) 中保存产品时,价格会乘以 100

    我在 Rails 3 1 3 和 Ruby 1 9 3 之上安装了在线购物框架 Spree 我还使用 Spree i18n gem 来本地化商店 现在 每当我保存产品时 价格都会乘以 100 例如 在管理区域中 我输入价格 3 20 结果是