gpt4 book ai didi

ruby-on-rails - 在模型创建时生成自定义 ID

转载 作者:行者123 更新时间:2023-11-29 12:11:37 26 4
gpt4 key购买 nike

我正在尝试根据 Rails 中默认分配的数据库 ID 为我的模型生成自定义 ID。

也就是说,我有以下模型:

class Teacher < ActiveRecord::Base
end

保存后,Teacher 会自动从数据库中获取一个id。我添加了另一列名为 user_id 的字符串;我正在尝试生成一个基于默认 ID 的新 ID(即,如果 teacher.id1,则 user_id 变为T-0001 或类似的东西。

我试过使用 after_save 方法;但这不是很有帮助;我最终会更新新的专栏,即使我不需要(比如更新后或其他)。 after_create 回调也不会起作用,因为 id 还没有被数据库实际分配。

最佳答案

为什么不,而不是将其存储在数据库中,您只需创建一个返回该值的方法?像这样的东西:

class Teacher < ActiveRecord::Base
...
def user_id
"T-#{self.id.to_s.rjust(4, '0')}"
end
end

如果你真的想把它存储在数据库中,你应该使用after_save检查值是否已经生成:

class Teacher < ActiveRecord::Base
after_save :generate_user_id
...
private
def generate_user_id
self.update(user_id: "T-#{self.id.to_s.rjust(4, '0')}") if self.user_id.nil?
end
end

关于ruby-on-rails - 在模型创建时生成自定义 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31738161/

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