关于重复数据库条目的快速问题。
假设我有用户在一个平台上发布他们的旅行。现在,用户可以说这些旅行是经常性的——她/他每周二和周四都会去。
为了让事情更有趣,可以说每次旅行都有附加的请求,其他用户都可以这样做。他们可以为每一次重复的旅行提出这些要求。
有什么办法让我在后台处理这样的案子吗?使用Rails和Postgres。
提前谢谢!
最佳答案
User
has_many :trips
Trip
belongs_to :user
has_many :requests
Request
belongs_to :user
belongs_to :trip
在
recurring_start
上添加recurring_end
和Trip
属性,也许在recur
上添加Request
属性。我不知道你每次旅行都需要做额外的记录,是吗?如果是的话,你需要你的业务逻辑来处理这个问题。类似Sidekiq的查询对象,该查询对象获取应重复的行程,并创建新的行程(例如)更新的开始和结束日期…
class Trip < ApplicationModel
scope :recurring, -> { where(recur: true) }
scope :due_for_recurrence, -> { recurring.where(Trip.arel_table[:end_date].lt(Time.now)) }
end
如果您还想自动克隆/复制相关记录,可以使用类似DeepCloneable的内容。