我有一个场景,我有可选的关联。有时关联存在,有时则不存在。
当我尝试在屏幕上显示数据时遇到问题(想想一个简单的索引操作)。
考虑以下应用程序设置:
- 项目有许多可交付成果
- 项目有许多部署记录(此模型的两个属性是“名称”和“描述”)
我有兴趣从可交付成果索引操作中提取部署记录关联。
我让它与以下代码一起工作,但我觉得它有点难看:
@array = deliverable.try(:project).try(:deployment_record)
if @array
@array.each do |r|
[r.name, r.description].join(' - ')
end
重写这个更优雅的方式是什么?我试过
deliverable.try(:project).try(:deployment_record).each do |r|
[r.name, r.description].join(' - ')
end
但我一直遇到 nil:NilClass错误的未定义方法“每个” 。我似乎无法找到一种方法来优雅地绕过在 Nil 对象上调用的 .each 。我有一种感觉,不知怎的,我应该能够更优雅地做到这一点,但我不能把手指放在上面。
我在代码库中多次重复使用这个片段,所以如果我只是将它复制并粘贴到任何地方,那额外的两行真的会害死我。我很高兴关联检索失败,我只想优雅地失败,没有任何错误或消息。有任何想法吗?