Ruby on rails 用money-rails自动解析价格

Ruby on rails 用money-rails自动解析价格,ruby-on-rails,ruby,money-rails,Ruby On Rails,Ruby,Money Rails,我已经实现了money rails gem,以支持项目模型上的价格 现在,在items\u controller.rb中创建新的items之前,我用price解析一个字符串,如下所示: @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

我已经实现了money rails gem,以支持
项目
模型上的价格

现在,在
items\u controller.rb
中创建新的
items
之前,我用price解析一个
字符串
,如下所示:

@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
但是,我想知道是否有一种更“正确”的方法可以在将字符串保存到模型之前自动解析它。在保存之前,我尝试了一个
过滤器,但无法使其工作


价格存储在
Item
模型中的两列中,
price\u cents
price\u currency

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

models/item.rb

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