私の erb ファイルでは、body タグに次のコードがあります。
<% @tasks.each do |task| %>
<%= task.name %>
<% end %>
これは機能していますが、task.otherAttribute が -1 に等しくない場合にのみ task.name を表示したいと考えています。
どういうわけか、これを行う方法がわかりません!どんなヒントでも大歓迎です。
前もって感謝します。
これを試して:
<% @tasks.each do |task| %>
<%= task.name if task.otherAttribute != 1 %>
<% end %>
または:
<% @tasks.each do |task| %>
<%= task.name unless task.otherAttribute == 1 %>
<% end %>
今後の参考のために、さらにいくつかのオプションを提供します。
<% @tasks.each do |task| %>
<% if task.otherAttribute != 1 %>
<%= task.name %>
<% end %>
<% end %>
<% @tasks.each do |task| %>
<%= task.otherAttribute == 1 ? '' : task.name %>
<% end %>
幸運を!
#select
私はこの慣用句にandを使用する傾向があり#reject
ます。これは基本的にあなたがしていることだからです。
<%= @tasks.reject{|t| t.other_attribute == -1}.each do |task| %>
<%= task.name %>
<% end %>
これらは、メソッドを持つほとんどのものに含まれるEnumerable#each
モジュールから取得されます。
ERB コードに条件を入れることができます。
<%= task.name if task.otherAttribute != 1 %>
より詳細な構文を使用して、より複雑なタスクを実行することもできます。あなたの場合は必要ありませんが、次のように従来の if/else ブロックを実行することもできます。
<% if task.otherAttribute != 1 %>
<%= task.name %>
<% end %>