2

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

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

4

1 回答 1

0

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

我对您的问题的实现如下所示:

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')
于 2017-04-29T06:20:35.920 回答