【Rails】lazy_high_charts로 도표를 만드는 방법

목표


이달 등록의 추이를 하루에 한 번씩 볼 수 있는 도표를 만들다.

개발 환경


・Rubby:2.5.7
・Rails:5.2.4
・Vagrant:2.2.7
・VirtualBox:6.1
・OS:macOS Catallina

전제 조건


다음은 이미 실현되었다.
슬림 가져오기
Bootstrap3 가져오기
Font Awesome 가져오기
로그인 기능 설치
발언 기능 설치

이루어지다


1. 젬 도입


Gemfile
# 追記
gem 'lazy_high_charts'
단말기
$ bundle

2. application.js 편집


application.js
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require highcharts/highcharts // 追記
//= require highcharts/highcharts-more // 追記
//= require_tree .

3. 컨트롤러 편집


books_controller.rb
def index
  @book = Book.new
  @books = Book.all
  # 追記
  days = (Date.today.beginning_of_month..Date.today).to_a
  books = days.map { |item| Book.where(created_at: item.beginning_of_day..item.end_of_day).count }
  @graph = LazyHighCharts::HighChart.new('graph') do |f|
    f.title(text: '本 月間登録推移')
    f.xAxis(categories: days)
    f.series(name: '登録数', data: books)
  end
end

① 이달 1일부터 오늘까지의 날짜를 취득하고 변수를 대입한다.

days = (Date.today.beginning_of_month..Date.today).to_a

②① 획득한 날짜에 작성한 책의 수량을 획득하고 변수를 대입한다.

books = days.map { |item| Book.where(created_at: item.beginning_of_day..item.end_of_day).count }

③ 차트 만들기

@graph = LazyHighCharts::HighChart.new('graph') do |f|
  f.title(text: '本 月間登録推移') # タイトル
  f.xAxis(categories: days) # 横軸
  f.series(name: '登録数', data: books) # 縦軸
end

4. 뷰 편집


books/index.html.slim
/ 追記
= high_chart('sample', @graph)

좋은 웹페이지 즐겨찾기