May 17th, 2009

Number format in Rails

No Comments », RoR, by nolifelover

rails-number-format

วันนี้เอาทริปอาจจะไม่เด็ดเท่าไรเพราะ programmer ทั่วไปคงรู้กันแล้ว แต่สำหรับมือใหม่คงต้องใช่ครับ สำหรับใครที่ต้องการจะแสดงผลเป็น 0001 แต่มีตัวเลขแค่ 1 เราสามารถใช้งาน rails sprintf ซึ่งมีให้ใช้งานอยู่แล้ว

1
2
 
  sprintf('%04i', 1) #result 0001

แล้วถ้าเกิดผมต้องการใช้ตัวเลขมี prefix และ auto generate อัตโนมัติเมื่อสร้างขึ้นมาจะทำอย่างไรลองมาดูกันครับ สำหรับเลขชุดที่ผมต้องการตอ้งขึ้นต้นด้วย TX01H และมีลำดับตามเป็นเลข 4 ตัวเรียกกันไปครับคือ 0001… มาดูโค้ดกันครับ

1
2
3
4
 
  @last_txaction = Txaction.find(:first,:conditions=>["code like ?","TX01H%"],:order => "code desc") #find last code result =>TX01Hxxxx
  code = @last_txaction ? @last_txaction.code.gsub("TX01H","").to_i+1:1 #if not found start code from 1
  @txaction.code = "TX01H"+sprintf('%04i', code)

เป็นอันว่าเรียบร้อยครับ

12 views

Leave a Reply