Skip to main content

How to implement charts and graphs in a Ruby on Rails 6 application

This article will discuss how to implement charts and graphs in Ruby on Rails 6 applications.

  • Create a new application
1
rails new chart tutorial
  • Scaffolding
1
2
rails g scaffold Order price:integer status:string 
rails db:create db:migrate
  • Seed in some data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# db/seeds.rb
5.times do |i|
 order = Order.create(price: 100 * i, status: 'dispatched')
 order.update(created_at: order.created_at - i.day)
end

5.times do |i|
 order = Order.create(price: 100 * i, status: 'pending')
 order.update(created_at: order.created_at - i.day)
end

5.times do |i|
 order = Order.create(price: 100 * i, status: 'delivered')
 order.update(created_at: order.created_at - i.day)
end
  • Add dependencies
1
yarn add chartkick chart.js
1
2
3
# app/javascript/packs/application.js
require("chartkick")
require("chart.js")
1
2
3
4
# app/javascript/packs/application.js

gem 'groupdate'
gem "chartkick”
1
bundle install
  • Implementation
1
2
3
4
# app/views/orders/index.html.erb

<%= line_chart Order.group_by_day(:created_at).count %>
<%= pie_chart Order.group(:status).count %>
  • Testing
1
rails s

Open http://localhost:3000/orders and you should see something like this:

Screen Shot 2020-07-01 at 4.03.13 PM.png