2016-09-25 8 views
0

私はアプリで働いています。私はあなたに質問があります。特定の値のフィールドを表示しようとしています。私は2値 "oui"と "non"を持っています。私は条件を満たしても動作しませんが、値 "non"は常に表示されます。私はこれを表示したくない。特定の値を表示するための表示

My value in db 
Plage = oui 
Etang = oui 
Montagne = oui 
Riviere = non 
<% @camping.situations.each do |situation| %> 
     <% if situation.plage == "oui" || situation.etang == "oui" || situation.montagne == "oui" || situation.riviere == "oui" %> 
     <p> Plage: <%=situation.plage %> à <%=situation.distanceplage%> km</p> 
     <p> Etang: <%=situation.etang%></p> 
     <p> Montagne: <%=situation.montagne %></p> 
     <p> Rivière: <%=situation.riviere%></p> 
     <% else %> 

     <%end%> 

     <%end%> 

あなたは私を助けることができますか?あなたの変数のいずれかが「OUI」に相当するとき

答えて

2

あなたの「もし」チェックがTRUEと評価されます。あなたのexmpleで

、プラージュは== "OUI" です。つまり、ORチェックを使用しているため、IFチェックで他の変数の次のチェックを無視します。これはプログラミングでショートサーキット( https://en.m.wikipedia.org/wiki/Short-circuit_evaluation)と呼ばれています。

"||"の代わりに "& &"ステートメントを使用することを検討してください。そうすれば、変数のいずれかが「非」の場合、そのビューは表示されません。

+0

ご返信ありがとうございます。もし私が置き換えるなら|| &&何も表示しません.... – nicolaswecandoit

+0

変数のいずれかが "oui"と等しくないため、何も表示されません。すべての比較を "&&"で連結すると、すべての比較が真でなければなりません。 – zherr

+0

申し訳ありませんが、私は理解していません...私は私の状態のために書く必要がありますか? – nicolaswecandoit

関連する問題