How to handle a price with Ruby-on-Rails

songta17

Vorachith Phoubandith

Posted on January 27, 2022

How to handle a price with Ruby-on-Rails

You surely ever needed to add a price column in a table of your database. But what type to select for the column price? A beginner will try with a float and meet trouble to display the price value.

Use the type Decimal !

Let's create a Book table with title, description and price columns. I put the validations aside, it is not the subject of this tiny article.

rails g model Book title:string author: string price:decimal{8,2}
Enter fullscreen mode Exit fullscreen mode

After making the usual rails db:migrate, launch 'rails c' in the terminal so you can try to create an entry in your database. You can use the next code for convenience :

book = Book.new(
  title: 'La nuit des temps',
  author: 'Barjavel',
  price: 10.99)
book.save
Enter fullscreen mode Exit fullscreen mode

No errors right? But your surely see price value like that :

price: 0.1099e2
Enter fullscreen mode Exit fullscreen mode

To display the price with decimal formatted number, you can use .to_s, so we get :

book.price.to_s # 10.99
Enter fullscreen mode Exit fullscreen mode

Done!

💖 💪 🙅 🚩
songta17
Vorachith Phoubandith

Posted on January 27, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related