我正在使用 Ruby on Rails 3.2.13,我想限制与对象关联的数据库记录的数量,而不限制存储新记录的过程。也就是说,我有一个Article
班级,has_many :reviews
我希望每篇文章最多存储 10 条评论,并在提交超过 10 条的新评论时覆盖最旧的评论。例如,给定一篇文章提交了 10 条评论,当为该文章提交新评论时,我想检索最旧的评论并覆盖它(而不在数据库中创建新评论)。
我想Review
通过覆盖在模型中实现这一点,当给定文章的数据库中存在 10 条评论时,created_at
除了所有其他属性之外,该属性。换句话说,我想避免创建新记录(使用新记录id
),而是使用刚刚提交的新数据更新最旧的记录,以便存储 10 个最近的评论。它似乎像 FIFO 队列一样工作。
我怎么能/应该做到这一点?
注意:@bgates 提出的解决方案可能很好,但我想避免破坏最旧的记录然后创建新的(或反之亦然)记录,因为通过采用@bgates 的解决方案,记录ids
会随着时间的推移而显着增长(例如:1 , 2, ..., 34, ..., 7897987987, ...) 因为新评论不断提交,大约每 20 秒一次。我应该担心增长ids
吗?