ruby-on-rails - 当 MRP 大于 999 时,MRP 价格字段值除以 1000,同时更新 Spree (ROR) 中的值
问题描述
我在产品和变体模板中添加了一个字段 MRP,但问题是假设如果我第二次更新并且如果 MRP 大于 999 表示 1000,它将被除以千并在字段中给出值 1.00。我该如何解决这个问题。
class AddMrpToVariant < ActiveRecord::Migration
def self.up
add_column :spree_variants, :mrp_price, :decimal, precision: 10, scale: 2
end
def self.down
remove_column :spree_variants, :mrp_price
end
end
解决方案
通过将以下代码添加到模型中解决了该问题。
%w(mrp_price).each do |m|
define_method("#{m}=") do |argument|
self[m] = Spree::LocalizedNumber.parse(argument) if argument.present?
end
推荐阅读
- git - Flutter 升级后 Flutter 找不到 git
- python - Python 无法识别 sum()。返回错误
- django - Django 中返回的多个对象
- python - Pandas:使用太多内存和条件滚动计数
- activemq - ActiveMQ ProtocolException 消息编码无效
- google-cloud-platform - 用于创建 Firestore 的 Terraform
- linux - 如何使用 Bluez L2CAP 发送更多字节?
- java - 以编程方式更改旧 android 版本上的应用程序语言
- c# - 如何向地形添加材质?
- android - 使用新项目更新我的回收站视图时遇到问题