gpt4 book ai didi

ruby-on-rails - ActiveRecord 在类加载时加载关系表作为枚举实例

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:03 25 4
gpt4 key购买 nike

我有一个包含产品查找的关系数据库表。该表支持多个系统,其中只有一个是 Rails 应用程序。在 Rails 应用程序中,我想将产品查找用作 ActiveRecord 类,其中包含带有产品代码的实例成员 - 例如,关键代码字段是一个 4 位字母数字。如果能够通过这样的代码引用实例就好了:ProductCode.01A3。当然,我不想简单地在 Rails 代码中声明它们,因为 DB 是多个系统的记录系统。此外,Ruby 将如何应对不存在的产品代码?如果 ProductCode.ABCD 不存在,它是否只是默默地返回一个 nil,我需要到处检查 nil 吗?然后是将新的 ProductCode 发布到生产环境中的问题。更新表需要重新加载类实例变量。

想法?这可以做到吗?应该这样做吗?我搜索了一个图书馆,但也许我的 Google-fu 不太好。

最佳答案

查找表是减少数据库查询数量的好工具,我经常在较长的工作进程中使用它们。我不建议在 Web 应用程序中使用它们,除非数据经常访问且很少更改并且获取成本很高。

我对你的问题的实现是这样的:

class ProductCode
@product_codes = {}
class << self
attr_accessor :product_codes
end

def self.get(code)
@product_codes[code.to_s]
end

def self.cache_all
# whatever you do here
@product_codes = {'01A3' => 42}
end
end

ProductCodes.cache_all

ProductCodes.get('01A3')

关于ruby-on-rails - ActiveRecord 在类加载时加载关系表作为枚举实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084222/

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