ruby erb html table 中的if语句怎么写
How to write if statement in ruby erb html table
我正在尝试在 table 中编写一个 if 语句,以便在数据库中不存在图像时获取一张图像。我能够分别检索两个图像,但不能使用 if 语句。我的代码哪里做错了。
<h1>Won Auctions</h1>
<br>
<table class= "table table-hover" >
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>End Date</th>
<th>Seller</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% won.each do |a| %>
<tr>
<td><%=
if a.image.exists? %>
<% image_tag(a.image, width:100) %>
else
<% image_tag("No_image.jpg", width:100) %>
<% end %>
%><td>
<td><%= a.name %></td>
<td><%= number_to_currency(a.highest_bid) %></td>
<td><%= a.auction_end_time %></td>
<td><%= a.seller.email %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
else
也需要在 ERB 标签中。
此外,您需要切换<%=
和<%
的用法。因为要输出图像标签,所以使用 <%=
和 image_tag
。但是你不输出 if
条件的结果,使用 <%
与 if
, else
和 end
.
<td>
<% if a.image.exists? %>
<%= image_tag(a.image, width:100) %>
<% else %>
<%= image_tag("No_image.jpg", width:100) %>
<% end %>
<td>
为了简化视图,我会考虑向您的 a
模型添加一个辅助方法(我猜它是一个 Auction
),然后在视图中调用该辅助方法而不是使用条件在视图中:
# in the model
FALLBACK_IMAGE_PATH = 'No_image.jpg'
def image_path_with_fallback
a.image.exists? ? a.image : FALLBACK_IMAGE_PATH
end
# in the view
<td><%= image_tag(a.image_path_with_fallback, width:100) %><td>
我正在尝试在 table 中编写一个 if 语句,以便在数据库中不存在图像时获取一张图像。我能够分别检索两个图像,但不能使用 if 语句。我的代码哪里做错了。
<h1>Won Auctions</h1>
<br>
<table class= "table table-hover" >
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>End Date</th>
<th>Seller</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% won.each do |a| %>
<tr>
<td><%=
if a.image.exists? %>
<% image_tag(a.image, width:100) %>
else
<% image_tag("No_image.jpg", width:100) %>
<% end %>
%><td>
<td><%= a.name %></td>
<td><%= number_to_currency(a.highest_bid) %></td>
<td><%= a.auction_end_time %></td>
<td><%= a.seller.email %></td>
</tr>
<% end %>
</tbody>
</table>
<br>
else
也需要在 ERB 标签中。
此外,您需要切换<%=
和<%
的用法。因为要输出图像标签,所以使用 <%=
和 image_tag
。但是你不输出 if
条件的结果,使用 <%
与 if
, else
和 end
.
<td>
<% if a.image.exists? %>
<%= image_tag(a.image, width:100) %>
<% else %>
<%= image_tag("No_image.jpg", width:100) %>
<% end %>
<td>
为了简化视图,我会考虑向您的 a
模型添加一个辅助方法(我猜它是一个 Auction
),然后在视图中调用该辅助方法而不是使用条件在视图中:
# in the model
FALLBACK_IMAGE_PATH = 'No_image.jpg'
def image_path_with_fallback
a.image.exists? ? a.image : FALLBACK_IMAGE_PATH
end
# in the view
<td><%= image_tag(a.image_path_with_fallback, width:100) %><td>