ユーザー投稿機能を持つRailsアプリケーション開発をしており、現在予約投稿機能を実装しようとしています。
予約投稿機能を実装するにあたり、オーソドックスは実装方法はどちらになるのでしょうか。
①対象のDBテーブルにreserveのようなカラムを作り、通常読み込む時はreserveがfalseのものを取得する
②Sidekiqなどを用いて予約時刻になったらレコード作成を行う(投稿時にはDBに書込がされていない)
①はRailsでの実装となるとdefault_scopeを使用することが想定されますが、調べるとdefault_scopeは悪だ、というように言われていて使用することに躊躇しています。
とはいえdefault_scopeを入れないとヒューマンエラーで予約分を誤って表示するなど考えられるので、使わざるを得ないのではないかと思っています。
②はデータベーススキーマやバリデーション条件が予約時刻までに変更された場合、本来投稿できるものができなくなる可能性があります。また画像データなどを大量にプールするとメモリが枯渇することも考えられます。
個人的には①ではないかと考えているのですが、選択を誤ると大きな問題になりそうで皆さんのご意見をお聞きしたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。