浏览 3965 次
锁定老帖子 主题:amount_in_yuan
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-23
# config/enviorment.rb class Module def amounts_in_yuan(*args) args.each do |sym| class_eval %{ def #{sym}_in_yuan amt = self.#{sym} || 0 sprintf("¥%01.2f", amt.to_f/100) end def #{sym}_in_yuan=(amt) amt.sub!('¥', '') if amt.starts_with?('¥') self.#{sym} = (amt.to_f * 100).to_i end } end end end # db/migrate/001_create_products.rb class CreateProducts < ActiveRecord::Migration def self.up create_table :products do |t| t.column :price, :integer # 金额定义为integer,单位为分 t.column :cost, :integer ... end end ... end # app/models/product.rb class Product < ActiveRecord::Base amounts_in_yuan :price, :cost ... end <%# app/views/products/edit.rhtml %> ... 单价:<%= f.text_field :product, :price_in_yuan %>元 成本:<%= f.text_field :product, :cost_in_yuan %>元 ... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-24
看那本书第二版。现在提倡的做法是用一个BigDecimal字段来保存价格。
|
|
返回顶楼 | |
发表时间:2007-01-24
看到了,谢谢!
add_column :products, :price, :decimal, :precision => 8, :scale => 2 |
|
返回顶楼 | |