p entry # <Contentful::Entry[item] id='3oXocy0iJX8ksdfe435RjWjE'>
i = entry.image
p i.present? # true
p i.nil? # false
p i.respond_to?(:url) # true
p i.url # undefined method `url' for nil:NilClass
p i # undefined method `url' for nil:NilClass
我要从Contenful CMS中提取一个项目,并尝试在Rails中进行渲染。我的内容管理员设法删除了条目上的图像(该字段实际上称为“图像”),从而导致渲染中断。上面的代码是我试图测试丢失的图像的方法,因此我可以跳过渲染该部分而不会破坏我的网站。
如您所见,这令人发疯。 Rails说条目在那里(它是),说它不是nil,然后在它下面立即抛出nil:NilClass错误。
最后一行可能是最有趣的-即使我只是尝试打印或检查“ i”,我仍然会收到错误,好像我在尝试访问url属性一样。我觉得我在吃疯药。