我已经实现了money-rails gem来支持Item模型上的价格。
现在,在items_controller.rb中创建新的string之前,我先解析一个包含价格的Item,如下所示:
@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_cents和price_currency。
发布于 2014-05-15 20:33:29
您可以覆盖Item模型中的属性编写器,甚至可以定义一个执行所有相关逻辑的新实例方法(作为虚拟属性)。例如:
models/item.rb
...
def price=(price)
money = price.to_money
self.price_cents = money.fractional
self.price_currency = money.currency.iso_code
endhttps://stackoverflow.com/questions/23676514
复制相似问题