2013-06-01 47 views
0

簡單的問題,我是新來的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個三元報表,但我找不到aynthing像THI我正在尋找的東西。謝謝!

回答

1

如果它只是你不需要逃避它一個字符串,三元如下:

<p><%= arr.thing ? 'Read' : 'Unread' %></p> 
+1

這是所問問題的正確答案。不過,我建議使用助手方法,因爲使用這樣的if語句很容易混淆視圖。 – Ashitaka

2

這樣的事情是通過助手最好的處理。

<p><%= read_or_unread(arr.thing) %>></p> 

助手:

class SomethingHelper 
    def read_or_unread(thing) 
    thing ? 'Read' : 'Unread' 
    end 
end 

read_or_unreadSomethingHelper基於域更富有意義命名。如果您有其他複雜的邏輯,您也可以使用演示者模式。

相關問題