ふわ

2021年04月04日に参加

学習履歴詳細

クエリパラメータで期間を指定してグラフを描画する(Chart.js/Rails)

意図した通りに変数に代入されているかがわからない。
binding.pryをこまめに試して、一つずつ実装していった。

アプリ制作

実現したいこと

体調グラフ機能

コントローラでクエリパラメータを受け取り、@reportを生成する

Viewで@reportをもとにグラフを描画する

実装したもの

  • QueryParameterをpermitするメソッド

  • paramsのdate_begin, date_endをDateオブジェクトにparseするメソッド

# app/controllers/concerns/parse_date_params.rb
# application_controller.rbにinclude

require 'active_support/concern'

module ValidateDateParams
  extend ActiveSupport::Concern

  def valid_date?(str, format="%Y-%m-%d")
    Date.strptime(str,format) rescue false
  end
end

module ParseDateParams
  extend ActiveSupport::Concern
  include ValidateDateParams

  def parse_date_params(params_hash)
    params_hash.each do |key, value|
      if valid_date?(value)
        params_hash[key] = Date.strptime(value, '%Y-%m-%d')
      end
    end
  end
end

クエリパラメータで時期を指定してグラフを描画することができた!

Image from Gyazo

/statistics?column=activity&date_begin=2019-09-22&date_end=2019-09-28

わからないこと

QueryParameterに不備があった時のエラーの出し方?

Ruby
Rails

2019年09月26日(木)

3.5時間