2021年04月04日に参加
学習履歴詳細
前後の期間へのリンク生成 - 体調グラフ機能
クエリパラメータをperiod=monthと指定してGETしても、@report.period = :weekになる。
pry.bindingで変数の中身を追っていくと、Strongparameterのperiodカラムがpermitされておらず、nilが返り, @report.periodがデフォルトの:weekになっていた。
アプリ制作
実現したいこと
体調グラフ機能
クエリパラメータでカラム・期間を指定してグラフを描画する
異なるカラム・前後の期間へのリンクを生成する。
課題
以下の2つのメソッドを定義する必要があると考えた。
report
インスタンスのdate_begin
,date_end
,period
を受け取って、前後の期間へのクエリパラメータを返すメソッドdate_begin
,date_end
,colmun
を受け取って同時期の別カラムへのクエリパラメータを返すメソッド
ここまで考えたところで、メンターに質問して、並行して自分で進める。
実装 前後の期間へのリンク生成
- URIでperiod=monthと指定しても、@report.period = :weekになる
- periodとdate_begin, date_endの差を検証していない=> 後に回そう
- StrongParameterでperiodパラメータがpermitされていなかった。
- 以下のように実装し、一応動いた。
# app/helpers/statistics_helper.rb def previous_period_generator(report) date_begin_and_end = [] if report.period == :month date_begin = report.date_begin << 1 date_end = report.date_end << 1 elsif report.period == :week date_begin = report.date_begin - 1.week date_end = report.date_end - 1.week else date_begin = report.date_begin - 1.week date_end = report.date_end - 1.week end date_begin_and_end << date_begin date_begin_and_end << date_end date_begin_and_end end def next_period_generator(report) date_begin_and_end = [] if report.period == :month date_begin = report.date_begin << -1 date_end = report.date_end << -1 elsif report.period == :week date_begin = report.date_begin + 1.week date_end = report.date_end + 1.week else date_begin = report.date_begin + 1.week date_end = report.date_end + 1.week end date_begin_and_end << date_begin date_begin_and_end << date_end date_begin_and_end end
# app/views/statistics/report.html.erb <h3><%= @report.column %></h3> <% before = previous_period_generator(@report) %> <%= link_to "前", statistics_path(column: @report.column, date_begin: before[0], date_end: before[1]) %> <p><%= @report.date_begin %>~<%= @report.date_end %></p> <% after = next_period_generator(@report) %> <%= link_to "次", statistics_path(column: @report.column, date_begin: after[0], date_end: after[1]) %>
プロを目指す人のためのRuby入門
- 7.7.3 復習, 7.7.7復習, bashスクリプト記述
- 7.8 定数
- 7.9 さまざまな変数
- 7.9.1 クラスインスタンス変数
bashの設定
チェリー本の学習記録として写経したコードと主な実行結果をファイルに残している。
実行結果をターミナルからコピペする手間が無駄なので、以下の設定をした。
samle.rb
に実行結果をコメントアウトした状態で出力するスクリプトファイルを作成- 上記スクリプトファイルを実行するコマンドのエイリアスを設定
思ったこと
- エラーもファイルに出力できるようにしたい
- テストをかけるようにならないと、動作が正確か自信が持てない。手動のチェックが面倒
Ruby
2019年09月30日(月)
5.8時間