0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【個人アプリ作業メモ】simple_calendarでカレンダーを作る

Posted at

カレンダーの設置はできた。

スクリーンショット 2020-08-23 午後6.35.51.png

ここにpostsテーブルの情報を追加していきたい。

https://github.com/excid3/simple_calendar
公式ページを参考に進めていくか。

app/views/calendars/index.html.haml
.calendar
  = month_calendar events: @posts do |date, meeting|
    = date
  - posts.each do |post|
    = post.calorie
app/controllers/posts_controllers
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カラムにデフォルト値を入れておく。

これで解決した

posts_controller.rb
@post = Post.new(post_params)
 # 今日の日付を取得(simple_calendarのため)
@post[:start_time] = Date.today.strftime('%Y-%m-%d')

これで今日の日付を取ってきて、posts_tableのstart_timeカラムに自動で入れるようにした。
ちなみに、投稿するときのフォームではstart_timeを入力するフォームは用意してない。

つまり、フォームで入力しなくても、
投稿すれば自動的にstart_timeカラムに投稿した日付が入るようにしたということ。
スクリーンショット 2020-08-24 午後11.57.57.png

この赤枠の部分に値が入ってないと
イベントとして表示されない。

これでstart_timeに日時の値が入ったことで、
無事simple_calendarにイベントを表示することができた。

スクリーンショット 2020-08-24 午後11.55.20.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?