2017-03-02 50 views
-1

在我的Rails应用程序中,创建新产品时输入的表单字段决定显示哪个图像。如果我输入'verdict'文本框,这意味着产品很糟糕,所以我显示灰色的非活动亚马逊按钮。为什么我的三元运算符代码返回这两个条件?

如果我输入“goodverdict”框,它是一个合法的产品,所以我们看到亚马逊的购买按钮,并且它与产品相关联,因为我将该URL输入到表单中。我第一次尝试present?,最近才将它切换到presence(这是下面的内容)。两者都有同样的结果。

但是,当我只输入'goodverdict'框时,我得到两个按钮(即,如果两个参数都是真的)并且文本显示“false?”。出现。

enter image description here

<div class="col-md-4" id="belowvid"> 
<%= @product.verdict.presence %> ? <%[email protected] %> <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 %> 
+1

谢谢!我觉得这很简单,但也很高兴,因为它不需要你很多时间。但是... :) – Nick

+0

我错了,因为我认为这个问题,所以重新发布此评论: 垃圾,点击输入太快。我想说,自从使用该代码以来,现在是“buylist”属性(这是我粘贴到表单中“buylink”字段的产品链接,并且使购买按钮链接到产品)是给我一个路由错误,说:没有路由匹配[GET]“/products/www.espn.com”,这是没有道理的。 @ products.buylink.html_safe未更改。 – Nick

+0

OH ...我...上帝...这是因为当我在测试条目中真正快速地进入www.espn.com时,我并没有包括http://,并且亚马逊链接总是这样做,这就是为什么他们一直工作。哇... – Nick

相关问题