【发布时间】:2018-08-25 23:25:48
【问题描述】:
我正在使用条件来检查两个值是否存在。我想用第二个条件覆盖第一个条件。如果第二个存在,那么第一个很可能会存在,如果这是有道理的。不是我遇到的问题是使用两种不同的调用方法。
到目前为止我所拥有的:
<% @data.each do |i| %>
<% if i.stock.present? %>
In Stock
<% elsif i.sold.present? %>
Sold
<% else %>
n/a
<% end %>
<% end %>
因此,如果有库存则显示“In Stock”,如果已售出则显示“Sold”。
【问题讨论】:
-
这就是为什么 TDD 很重要。在每个示例案例中,您期望得到什么输出?
-
问题是什么?
-
当你说“用第二个条件覆盖第一个条件”时,我假设你说
i.stock.present?总是正确的?股票是整数吗?如果是这样,在 0 上调用present?将返回true。 -
我的意思是,如果第一个条件为真,则显示库存消息,但如果存在第二个条件,则显示已售出。如果不存在,则不显示任何内容。但是如果第二个条件存在,第一个条件将永远存在,这就是我遇到的问题。目前,如果两者都存在,它会同时显示库存和已售消息。
-
“目前,如果两者都存在,它会同时显示库存和已售消息”。你确定吗?或者,它是否同时显示是因为您正在循环访问
@data,其中包含有库存和已售出的商品?
标签: ruby-on-rails ruby-on-rails-5