当MRP大于999时,MRP价格字段值将除以1000,同时更新Spree(ROR)中的值

时间:2019-02-21 08:57:47

标签: ruby-on-rails spree

我已将字段MRP添加到Product and Variants模板中,但问题是如果我第二次更新,并且如果MRP大于999意味着1000,它将被除以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

1 个答案:

答案 0 :(得分:0)

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

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