简单的问题,我是Rails 3的新手,如果我有类似的东西:
<% @array.each do |arr| %>
<%= arr.thing %>
<% end %>
如果我想做这样的事情,我将如何逃避清洁:
<% @array.each do |arr| %>
<p><%= if arr.thing 'Read' else 'Unread' %></p> < All in 1 line prints whatever value to a <p></p>
<% end %>
因此,我不必因为
而变得更加混乱<% @array.each do |arr| %>
<%= if arr.thing %>
<p>Read</p>
<% else %>
<p>Unread</p>
<% end %>
<% end %>
这是否可能,我尝试使用谷歌搜索Rails 3三元语句,但我找不到像我一样寻找的合成语。谢谢!
答案 0 :(得分:2)
这种事情最好通过助手处理。
<p><%= read_or_unread(arr.thing) %>></p>
助手:
class SomethingHelper
def read_or_unread(thing)
thing ? 'Read' : 'Unread'
end
end
read_or_unread
和SomethingHelper
根据您的域名进行更有意义的命名。如果您有其他复杂的逻辑,也可以使用presenter模式。
答案 1 :(得分:1)
如果它只是一个字符串,你不需要逃避它,三元组如下:
<p><%= arr.thing ? 'Read' : 'Unread' %></p>