【发布时间】:2017-11-30 16:12:15
【问题描述】:
我目前面临的问题是,我的所有对象都使用具有“相同”初始值的实例变量,而我只读取了这个。
def initialize
@available_ids = read_only_value
end
但棘手的事情来了:这个“read_only_value”是从 API 中检索的。为方便起见,我们假设该值是一个整数数组,并且每月更改一次。
但我不想每次创建对象时都通过检索值来拒绝 API。如果我改用类变量怎么办?
class Foo
@@available_ids = read_only_value
def initialize
@available_ids = @@available_ids //weird but let's go with it
end
end
我认为这将解决向 API 发送垃圾邮件的问题,因为它只会在变量初始化后执行...
但是什么时候会发生这种情况?当我启动我的 Rails 应用程序时,当我创建第一个对象时?它会更新吗?由于值每月更改一次,我如何获得更新?
PS:我想最好的选择是将 id 保存在数据库中,并偶尔或按需检查 id。
【问题讨论】:
标签: ruby-on-rails ruby initialization class-variables