2017-03-02 63 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

相關問題