我使用Fog从Rackspace获取服务器列表时出现以下代码问题 - 我将新一代服务器与旧一代服务器连接起来。
def servers()
servers = @service.servers
servers_old = @service_old.servers
size = servers.length + servers_old.length # line 4
all_servers = servers + servers_old # line 5
servers = all_servers.sort_by { |k| k.name}
return servers
end
如果第四行被注释掉,则该方法仅返回service.servers
数组。第五行中的连接不会发生。在我看来,数组service.servers
和service_old.servers
在某种程度上是懒惰的,直到我明确要求它们为止。
使用未注释的第四行,该方法返回连接数组,这是我所期望的。如果这些数组是惰性的,是否有任何推荐的方法来评估它们?现在我只是使用length
,但我真的不需要它。某些特定文档的任何提示/链接?
答案 0 :(得分:4)
.all
是你的朋友。 Fog
个集合通常有一个all
方法,可以修复您正在使用的延迟加载问题。而不是@service.servers
,请使用:
servers = @service.servers.all
和
servers_old = @service_old.servers.all