2017-03-02 5 views
-1

私のRailsアプリケーションでは、新しい製品を作成するときに入力するフォームフィールドは、どの画像が表示されるかを指示します。私が「評決」テキストボックスに入力すると、製品が嫌なので、グレー表示された非アクティブなAmazonボタンが表示されます。三項演算子コードが両方の条件を返すのはなぜですか?

「goodverdict」ボックスに入力すると合法的な製品なので、フォームにURLを入力するため、Amazonの購入ボタンが表示され、商品にリンクされます。私はまず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 ... MY ...神...テストエントリ中にwww.espn.comにすばやく入室していたとき、私はhttp://を含めていなかったので、アマゾンのリンクは常にそうしていたからです。常に働いた。うわー... – Nick