2012-10-25 3 views
2

Rails 3 애플리케이션에서 나이에 따라 테이블 행을 강조 표시하는 가장 건조한 DRY 방법은 무엇입니까?X 일보다 오래된 레코드를 가장 잘 보여주는 방법은 무엇입니까?

<% @faults_open.each do |fault| %> 
    <tr> 
    <td><%= fault.name %></td> 
    <td><%= fault.faulttype %></td> 
    <td><%= fault.priority %></td> 
    <td><%= time_ago_in_words(fault.created_at) %> ago</td> 
    <td><%= link_to 'Show', fault %></td> 
    </tr> 
<% end %> 

CSS를 사용하여 스타일을 지정할 수있는 나이를 나타내는 표 행에 클래스를 적용하고 싶습니다.

<% @faults_open.each do |fault| %> 
    <tr <% if fault.created_at > Date.1.week.ago %>class="weekold"<% end %>> 
    <td><%= fault.name %></td> 
    <td><%= fault.faulttype %></td> 
    <td><%= fault.priority %></td> 
    <td><%= time_ago_in_words(fault.created_at) %> ago</td> 
    <td><%= link_to 'Show', fault %></td> 
    </tr> 
<% end %> 

위와 비슷하지만 분명히보기에 추가하는 것은 지저분 할 것입니다. 나는 같은 연령의 부부 추가 계획 :

weekold 
twoweeksold 
monthold 
sixmonthold 
yearold 
ancient 

내가 도우미가 tidiest 방법입니다 상상을하지만 난 도우미가 어떻게 작동하는지에 확실 해요. 모든 포인터는 감사하겠습니다.

답변

2

나는 최근에 비슷한 것을 만들었고 대략적인 나이에 해당하는 행에 클래스 이름을 추가 한 다음 CSS를 사용하여 실제 강조 표시를 수행했습니다. 도우미 ... (그냥 예) 당신의 HTML로

def highlight_age_class (created_at) 
    @@today ||= Date.today 
    num_weeks = ((@@today - created_at.to_date)/7).floor 
    class_name = "aged_#{num_weeks}_weeks" 
    num_weeks == 1 ? class_name.singularize : class_name 
end 

.. 일부 CSS와 결합

<tr class="<%= highlight_age_class fault.created_at %>"> 

..

.aged_1_week 
.aged_1_weeks 
.aged_4_weeks 
.aged_24_weeks 
.aged_56_weeks 

etc 

을 사용하지 왜

당신은 할 수 있습니다 연령 강조 표시를 위해 도우미 방법을 확장하고 최적화하는 데 집중하십시오.

+0

Perfect. 대단히 감사합니다! – dannymcc

관련 문제