【问题标题】:Auto parse price with money-rails使用货币轨道自动解析价格
【发布时间】:2014-05-15 11:09:11
【问题描述】:

我已经实现了 money-rails gem 以在 Item 模型上启用价格。

现在我在items_controller.rb 中创建一个新的Item 之前解析一个带有价格的string,如下所示:

@item = Item.find_or_create_by_link!(params[:item][:link]) do |c|
    c.assign_attributes(params[:item])
    c.price = params[:item][:price].to_money unless params[:item][:price].nil?
end

但是,我想知道在将字符串保存到模型之前是否有更“正确”的方法来自动解析字符串。我正在尝试使用before_save 过滤器,但无法使其正常工作。

价格存储在Item 模型的两列中,price_centsprice_currency

【问题讨论】:

    标签: ruby-on-rails ruby money-rails


    【解决方案1】:

    您可以覆盖 Item 模型中的属性编写器,甚至可以定义执行所有相关逻辑的新实例方法(作为虚拟属性)。例如:

    models/item.rb

    ...
    def price=(price)
      money = price.to_money
      self.price_cents = money.fractional
      self.price_currency = money.currency.iso_code
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多