用钱轨自动解析价格

时间:2014-05-15 11:09:11

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

我已经实施了money-rails gem来支持Item模式的价格。

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

@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

1 个答案:

答案 0 :(得分:1)

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

models/item.rb

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