2012-06-08 72 views
1

我正在尋找在我的視圖中執行一些條件格式。Rails中的條件文本顏色格式

因此,如果我顯示從字段返回的某個字符串,文本將以紅色爲例。有誰知道這樣做的好方法嗎?

+0

對於您期望看到的那種值,您是否有樣本標記? – CuriousMind

+0

例如:<%= unit.unit_status%>將顯示「服務中」,「停止服務」或其他8種狀態。我希望每個人在視圖中顯示不同的顏色。 – nulltek

回答

0

您可以在文本到達視圖之前對文本進行預處理,以搜索要突出顯示的字符串的文本。如果找到字符串,可以用包裹在span標記和一個類中的字符串進行拼寫。然後只需用CSS應用顏色。

def method 
    keywords = ["dog"] 
    @string = "My dog has fleas" 
    keywords.each do |kw| 
    @string.gsub!(kw, "<span class='highlight'>#{kw}</span>") 
    end 
end 

# css 
span.highlight {color: red} 
+0

這是一個好主意,我將如何將它傳遞給unit.status的值?我會做@string = unit.status – nulltek

+0

我不知道你想用unit.status做什麼。如果unit.status是你正在評估你的匹配的字符串,那麼是的,你會做你上面提到的。 –

+0

這是我想出了看法:​​

<%= unit.status.try(:unit_status) %>
units_helper.rb模塊UnitsHelper 高清set_status(狀態) #狀態轉換(如果它不是零)的參數版本 #「在服務」 =>「服務中「 status.try(:unit_status).try(:parameterize) end end 然後我在樣式表中設置每個狀態的樣式。它出來了很多更清潔。 – nulltek