Rails
Webサービス

今日お茶行きたい!ボタンをランチ募集サービスteapotで作った話


背景

https://www.tea-pot.net/

teapotというランチやお茶を気軽に募集できるサービスを運営しています。ここで今日お茶行けるよ!を表明できるボタンを作りたいなと思ってその際の仕様の決定する背景や開発内容をまとめました。


やりたいこと


  • 11:00までにお茶行きたいボタンをマイページから押す

  • その日の15:00までhomeで表示


仕様概要


table設計-なぜpostにカラム追加しなかったか-

postに特定のカラム追加してそこに日時をupdateしていくが最初に思いついた構成だったが一応その人が過去にどれくらい今日お茶行きたいボタンを押したかなどを残しておきたいなと思い、専用のtableを用意してそこにpost_idを送るようにした。


全体設計

teapot-6.jpg


  • 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の変更

https://qiita.com/ikemura23/items/52ab8a5d260c7ee4d42b

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の書く場所


使ってみてね!

https://www.tea-pot.net

今回の機能はさくっと今日誰かとランチしたいなというのをつなぎたいというのももちろんありますが、teapotの思想であるなんの繋がりもなかったtwitterでちょっと気になる人を繋ぐにあたって今日という時間軸で繋ぐというのを目的にしています。

teapotがあったから友だちになりましたって人が少しでも増えると嬉しいです。