ruby-on-rails 我是否可以在Rails应用程序中的Model级别格式化产品价格,以便它自动格式化为“$123.99”

kiayqfof  于 2023-03-09  发布在  Ruby
关注(0)|答案(1)|浏览(111)

我希望product.price的输出格式正确,但我也不希望添加“number_to_currency(product.price,precision:2)”每次我在ERB视图模板中引用价格时,是否有方法在模型级别(即在我定义的产品类中)设置此格式?“
我尝试了:我在我的ERB模板中到处添加了<%= number_to_currency(product.price, precision: 2) %>,我需要显示格式化的价格,这是有效的,但是我想知道我是否可以在我从中提取价格的模型中配置这种格式,这样我就只需要设置一次...
编辑:这是我的产品型号:

class Product < ApplicationRecord
  monetize :price_cents, numericality: true
  mount_uploader :image, ProductImageUploader

  belongs_to :category

  validates :name, presence: true
  validates :price, presence: true
  validates :quantity, presence: true
  validates :category, presence: true
end
egdjgwm8

egdjgwm81#

大家好,欢迎来到Stack Overflow。正如Dave所说,我们通常使用装饰器模式来分离模型和这类代码,但是如果你想在模型中使用快速而肮脏的方法,你可以添加类似于以下的内容:

class Product < ApplicationRecord
   # ... other model stuff goes here

   def price_display
      ActiveSupport::NumberHelper.number_to_currency(price, precision: 2)
   end
end

相关问题