背景
teapotというランチやお茶を気軽に募集できるサービスを運営しています。ここで今日お茶行けるよ!を表明できるボタンを作りたいなと思ってその際の仕様の決定する背景や開発内容をまとめました。
やりたいこと
- 11:00までにお茶行きたいボタンをマイページから押す
- その日の15:00までhomeで表示
仕様概要
table設計-なぜpostにカラム追加しなかったか-
postに特定のカラム追加してそこに日時をupdateしていくが最初に思いついた構成だったが一応その人が過去にどれくらい今日お茶行きたいボタンを押したかなどを残しておきたいなと思い、専用のtableを用意してそこにpost_idを送るようにした。
全体設計
- todaytable(今日お茶行きたい人の投稿のリスト)のcreated_atが今日の人を参照
- 時間制限は共通の変数を作成し、その時間じゃなければボタンや一覧の表示をしないで制御。正確にはURLたたけたりするけどまあ今回はそこまで制御しない
<% if Time.now.strftime("%H").to_i >= @today_start && Time.now.strftime("%H").to_i <= @today_end && @subposts.present? %>
こんな感じで@today_startなど共通の変数作ってapplication_controller.rbに記述して共通化する。
timezoneの変更
timezoneを上記の方法で日本時間に変更した
詰まったところ
timezone周り
application.rb
module Teapot
class Application < Rails::Application
config.load_defaults 5.1
config.time_zone = "Tokyo"
config.active_record.default_timezone = :local
end
end
timezoneの書く場所
使ってみてね!
今回の機能はさくっと今日誰かとランチしたいなというのをつなぎたいというのももちろんありますが、teapotの思想であるなんの繋がりもなかったtwitterでちょっと気になる人を繋ぐにあたって今日という時間軸で繋ぐというのを目的にしています。
teapotがあったから友だちになりましたって人が少しでも増えると嬉しいです。