Ruby on rails .当出现'时,首先给出错误;只有一张图片

Ruby on rails .当出现'时,首先给出错误;只有一张图片,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个多图像上传器,我在页面上显示图像,如下所示: <%= image_tag product.images.first %> <%= image_tag product.images.first if @product.images.present? %> <%= image_tag product.images.first if @product.images.present? else image_tag product.image if @produc

我有一个多图像上传器,我在页面上显示图像,如下所示:

<%= image_tag product.images.first %>
<%= image_tag product.images.first if @product.images.present? %>
<%= image_tag product.images.first if @product.images.present? else image_tag product.image if @product.image.present? %>

只要一个产品有多个图像,这就可以正常工作,但当只有一个图像时,会出现错误“nil不是有效的资产源”。我知道我可以检查多个像这样的图像:

<%= image_tag product.images.first %>
<%= image_tag product.images.first if @product.images.present? %>
<%= image_tag product.images.first if @product.images.present? else image_tag product.image if @product.image.present? %>

但是如果有一个图像,我确实希望这一个图像显示在页面上。有没有办法做到这一点:

<%= image_tag product.images.first %>
<%= image_tag product.images.first if @product.images.present? %>
<%= image_tag product.images.first if @product.images.present? else image_tag product.image if @product.image.present? %>

我想这会有所帮助:

<%= image_tag product.images.any? ? product.images.first : product.image %>

或者更简单,使用逻辑or运算符,正如@mudasobwa注意到的:

<%= image_tag product.images.first || product.image %>

我想这会有所帮助:

<%= image_tag product.images.any? ? product.images.first : product.image %>

或者更简单,使用逻辑or运算符,正如@mudasobwa注意到的:

<%= image_tag product.images.first || product.image %>


product.images.first | | product.image
?是的,信不信由你,就在你写评论之前,我想到了这一点:这很有魅力!我知道它有一些语法,但我对rails很陌生,无法理解它。谢谢@Jakeroo sidenote:这种语法(标记标记中的逻辑部分)与rails无关,这是纯ruby。
product.images.first | | product.image
?对,信不信由你,我是在你写评论之前想到的。:)这很有魅力!我知道它有一些语法,但我对rails很陌生,无法理解它。谢谢@Jakeroo sidenote:这种语法(标记标记中的逻辑部分)与rails无关,这是纯ruby。