gpt4 book ai didi

ruby-on-rails - rails : Scoped ID in addition to primary id

转载 作者:行者123 更新时间:2023-12-04 07:04:14 26 4
gpt4 key购买 nike

说我有很多博客,每个博客has_many职位。这些存储在 2 个表中(“博客”和“帖子”)。是否可以在博客表中添加一个额外的列(例如 scoped_id)来存储一个由博客限定的 ID。

例子

 Blog: 1
- Posts
- id: 1, scoped_id: 1
- id: 2, scoped_id: 2
- id: 3, scoped_id: 3
Blog: 2
- Posts
- id: 4, scoped_id: 1
- id: 5, scoped_id: 2
- id: 6, scoped_id: 3

我知道 counter_cache 可以跟踪父博客范围内的帖子数量。但是,我不想要 scoped_id如果帖子被破坏,则递减。

最佳答案

最好的办法是保留博客上最后使用的 ID,并通过以下方式填充它:

class Post < ActiveRecord::Base

before_create :populate_scoped_id

def populate_scoped_id
blog.increment!(:latest_scoped_post_id)
self[:scoped_id] = blog.latest_scoped_post_id
end

end

或类似的爵士乐。

如果保存失败,计数器将不会增加,因为这一切都在一个巨大的交易中(就像,完全是企业)。

关于ruby-on-rails - rails : Scoped ID in addition to primary id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com