首页 > 解决方案 > 当 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

标签: ruby-on-railsspree

解决方案


通过将以下代码添加到模型中解决了该问题。

%w(mrp_price).each do |m|
define_method("#{m}=") do |argument|
  self[m] = Spree::LocalizedNumber.parse(argument) if argument.present?
end

推荐阅读