如果创建日期超过6个月,Rails会突出显示表格行?

时间:2011-04-19 21:33:08

标签: ruby-on-rails if-statement html-table

我正在开发一个rails 2.3应用程序,以简化内部文书工作的创建等。我们有案例分配给特定的人,但有6个月的时间限制,案件必须解决或取消。

我有一个案例表(Rails模型称为Kases),如下所示:

<!-- START KASE SUB CONTENT -->
<div id="kase_subcontent">
<% unless Kase.most_recentfive.empty? %>

<div id="kasecounts">
    <ul>
        <li>Active Cases: <strong><%= @kases_active_count %></strong></li>
        <li>On Hold: <strong><%= @kases_on_hold_count %></strong></li>
        <li>Archived: <strong><%= @kases_archived_count %></strong></li>
        <li>Invoice Sent: <strong><%= @kases_invoice_sent_count %></strong></li>
    </ul>
</div>
<table class="index">
  <tr>
    <th>Job Ref.</th>
    <th>Subject</th>
    <th>Transport</th>
    <th>Client</th>
    <th>Client Ref.</th>
    <th>Status</th>
  </tr>

<% for kase in @kases %>

    <tr class="<%= cycle("even", "odd") %> <%=h kase.kase_status %>" onclick="location.href='<%= kase_path(kase) %>'">
  <td><%=h kase.jobno %></td>
    <td><%=h kase.casesubject %></td>
    <td><%=h kase.transport %></td>
    <td><%=h kase.company.companyname %></td>
    <td><%=h kase.clientref %></td>
    <td><%=h kase.kase_status %></td>

<!--    
    <td><%= link_to "Jobsheet", kase_path(kase, :format => 'pdf'), :class => 'PDFLink' %></td>
    <td><%= link_to 'Show', kase %></td>
    <td><%= link_to 'Edit', edit_kase_path(kase) %></td>
    <td><%= link_to 'Destroy', kase, :confirm => 'Are you sure?', :method => :delete, :class => 'important' %></td>
-->
  </tr>
<% end %>
</table>

<% else %>

<img src="images/allcases-sample.jpg" />

<% end %>

当用户创建新案例时,请设置“指令”的日期(收到案例),如下所示:

<li>Date Instructed<span><%= f.date_select :dateinstructed, :order => [:day, :month, :year] %></span></li>

他们也可以在任何时候改变案件的“地位”,如下:

<li>Current Case Status<span><%= f.select "kase_status", ['Active', 'On Hold', 'Archived', 'Invoice Sent'] %></span></li>

我想要做的是突出显示当前处于活动状态且指令日期超过6个月之前的表行。

我为已归档的案例设置了基本样式(淡化了颜色)但我认为将行变为红色以用于任何变得紧急的事情会很有用。所以我可能会出现5个月以上的琥珀色,然后是6个月的红色。

额外的好处是以某种方式使行闪烁,这对用户来说是显而易见的。

知道怎么做吗?


更新

我已将以下内容添加到kase助手中:

def is_urgent
  if (DateTime.now - 180) > @dateinstructed then
    content_tag(:class => "urgentCase")
  end
end

并使用以下内容从视图中调用它:

<%=h is_urgent %>

但是我收到以下错误:

  

nil的未定义方法`to_datetime':NilClass

1 个答案:

答案 0 :(得分:0)

CSS类是以空格分隔的,因此您可以提供另一种方法来确定该项是“紧急”还是“关键”,并将该样式添加到表行。 然后,您需要做的就是添加一个新样式,该样式使用旧样式定义下的新类

def is_urgent
    (DateTime.now - 180) > @dateinstructed
end