我有以下代码。此代码执行两次相同的SQL查询。因为图像是一个相关的属性表。
有没有办法只做一个查询,但结果仍然相同?
(@property.images.first ? @property.images.first.url : "/img/nophoto.jpg")
额外澄清: 解决方案应该适用于2个场景:
答案 0 :(得分:4)
如果你想在一行上做,你可以这样做:
(((first_image = @properties.images.first) && first_image.url) ||
"/img/nophoto.jpg")
但是在单独的一行上完成任务可能更清楚:
first_image = @properties.images.first
(first_image && first_image.url) || "/img/nophoto.jpg"
答案 1 :(得分:0)
image_url = @property.images.first.url
(image_url ? image_url : "/img/nophoto.jpg")
即使它有两行也是一个简单的解决方案(至少对我而言:D)