0

根据每个单元格的不同标准将类添加到rails中的表格单元格的最佳方法是什么?

例如...我有一个日期单元格:如果日期从该日期起 10 天即将到来,则需要添加一个“即将到期”类。或者,如果日期已经过了今天,请添加“逾期”课程。

在另一个单元格上,基于字符串,它需要有一个“on”或“off”类。

我不知道该怎么做,但我知道我可能不应该在视图中有一堆逻辑......

请指教。

4

2 回答 2

0

您可以通过以下方式完成它:

class="#{(@date - Time.now <= 10.days) ? upcoming_due : '' %>"

但是,正如您所提到的,视图中有很多逻辑并不好。如果您发现自己重复相同的代码,您可以添加如下所示的辅助方法:

def upcoming(date)
  (date - Time.now <= 10.days) ? 'upcoming_due' : ''
end

def past(date)
  (date - Time.now <= 10.days) ? 'past_due' : ''
end

在你看来,你会有这样的事情:

class="#{ upcoming(@date).presence || past(@date).presence || '' }"

于 2013-04-25T17:14:46.773 回答
0

这听起来像是我在浏览器中使用 Knockout 所做的事情。基本上,您为数据库中的每个字段创建一个带有可观察字段的剔除模型,并使用计算字段来计算类名或基于这些字段的任何内容。然后,您使用 HTML 模板中的数据绑定属性绑定到敲除的计算字段。

这种方法的缺点是用户需要启用 javascript 才能正确应用类,并且您在 javascript 中添加了一些逻辑。但我认为 javascript 文件是放置显示逻辑的好地方。

于 2013-04-25T17:28:08.807 回答