根据每个单元格的不同标准,在rails中向表格单元格添加类的最佳方法是什么?
例如......我有一个日期单元格:如果日期是从该日期起10天后出现的,则需要添加“即将到期”的课程。或者,如果日期已过去,请添加“过期”课程。
在另一个单元格上,基于字符串,它需要一个“on”或“off”类。
我不知道该怎么做,但我知道我可能不应该在视图中有一堆逻辑......
请指教。
答案 0 :(得分: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 || '' }"
答案 1 :(得分:0)
这听起来像是我在浏览器中使用Knockout做的事情。基本上,您为数据库中的每个字段创建一个带有可观察字段的挖空模型,并计算字段以根据这些字段确定类名或其他内容。然后,您可以在HTML模板中使用data-bind属性绑定到knockout的计算字段。
这种方法的缺点是用户需要启用javascript才能正确应用类,并在javascript中添加一些逻辑。但我认为javascript文件是放置显示逻辑的好地方。