カレンダーの設置はできた。
ここにpostsテーブルの情報を追加していきたい。
https://github.com/excid3/simple_calendar
公式ページを参考に進めていくか。
.calendar
= month_calendar events: @posts do |date, meeting|
= date
- posts.each do |post|
= post.calorie
class CalendarsController < ApplicationController
def index
@posts = Post.where(user_id: current_user.id)
end
end
これで表示できなかった。
https://qiita.com/isaatsu0131/items/ad1d0a6130fe4fd339d0
この記事によれば、カレンダーに出力したいテーブルで
t.datetime :start_time
と設定する必要があるみたいだ。
postsテーブルのデータを表示するためにどうすればいいか?
仮説
仮説1:postsテーブルにstart_timeカラムを用意する。
仮説2:posts_controllerのストロングパラメータのpermitでstart_timeカラムを許可する。
仮説3:start_timeカラムに何らかの値が入っている必要があるので、start_timeカラムにデフォルト値を入れておく。
↓
これで解決した
@post = Post.new(post_params)
# 今日の日付を取得(simple_calendarのため)
@post[:start_time] = Date.today.strftime('%Y-%m-%d')
これで今日の日付を取ってきて、posts_tableのstart_timeカラムに自動で入れるようにした。
ちなみに、投稿するときのフォームではstart_timeを入力するフォームは用意してない。
つまり、フォームで入力しなくても、
投稿すれば自動的にstart_timeカラムに投稿した日付が入るようにしたということ。
この赤枠の部分に値が入ってないと
イベントとして表示されない。
これでstart_timeに日時の値が入ったことで、
無事simple_calendarにイベントを表示することができた。