0

現在、私は次のようなものを考えています。

<table>
<tr>
   <% if item.status == nil %>
       <td><%= image_tag "/assets/nil.gif" %></td>
   <% else %>
       <% if item.status == "1" %>
           <td><%= image_tag "/assets/yes.gif" %></td>
       <% else %>
           <td><%= image_tag "/assets/no.gif" %></td>
       <% end %>
   <% end %>
</tr>
...

ここで三項演算子を使用できますか?どこに置けばいいのかわからなかった?または:埋め込みrubyとhtmlのこの組み合わせを使用する場合。

4

2 に答える 2

4
<%= 1 == 1 ? "one is one" : "one is two" %>
# outputs "one is one"

したがって:

<%= image_tag "/assests/#{ item.status == "1" ? "yes" : "no"}.gif" %>

ただし、この場合、全部で3つの可能な値をテストしているためswitch、ヘルパーメソッド内のステートメントが最適な場合があります。

# app/helpers/items_help.rb

def gif_name(status)
  case status
  when nil
    "nil"
  when "1"
    "yes"
  else
    "no"
  end
end

# app/views/items/action.html.erb

<td><%= image_tag "/assests/#{gif_name(item.status)}.gif" %></td>
于 2012-09-10T19:22:14.843 に答える
0

あなたができる

<%= item.status.nil? ? <td><%= image_tag "/assets/nil.gif" %></td> : <td><%= image_tag "/assets/#{item.status == '1' ? 'yes.gif' : 'no.gif'" %></td>

また

<%= item.status.nil? ? <td><%= image_tag "/assets/nil.gif" %></td> : item.status == "1" ? <td><%= image_tag "/assets/yes.gif" %></td> : <td><%= image_tag "/assets/no.gif" %></td> %>

三項演算子は、ifステートメントを次のように置き換えます。condition ? condition_true : condition_false

于 2012-09-10T19:29:54.197 に答える