在我的Rails应用程序中,我在创建新产品时输入的表单字段指示显示哪个图像。如果我进入'判决'文本框,这意味着产品很糟糕,所以我显示一个灰色的,不活跃的亚马逊按钮。
如果我输入'goodverdict'框,它是一个合法的产品,所以我们看到亚马逊的购买按钮,它与产品相关联,因为我在表格中输入了URL。我首先尝试使用present?
,最近才将其切换为presence
(这是下面的内容)。两者都有相同的结果。
但是当我只输入'goodverdict'框时,我得到了两个按钮(就好像两个参数都是真的一样)和文字说“假”?出现。
<div class="col-md-4" id="belowvid">
<%= @product.verdict.presence %> ? <%=@product.verdict %> <br> <%= image_tag('https://s3.amazonaws.com/isitcrap/amazon+gray+button.jpg', width: 275) %> :
<%= @product.goodverdict %> <br>
<%= link_to image_tag("https://s3.amazonaws.com/isitcrap/amazon-Button.png", width: 275), @product.buylink.html_safe, target: :_blank %>
这是来自由索引呈现的另一部分呈现的部分。
答案 0 :(得分:2)
你的三元运算符没有运行,因为它不在ruby部分,而是在html中。
只有<%
/ %>
标记内的内容才会以ruby的形式运行...其他所有内容都会像html一样打印到屏幕上。
在这种情况下 - 您可能想要的是这样的:
<% if @product.verdict.present? %>
<%= @product.verdict %> <br> <%= image_tag('https://s3.amazonaws.com/isitcrap/amazon+gray+button.jpg', width: 275) %>
<% else %>
<%= @product.goodverdict %> <br>
<%= link_to image_tag("https://s3.amazonaws.com/isitcrap/amazon-Button.png", width: 275), @product.buylink.html_safe, target: :_blank %>
<% end %>