如何在Rails视图中更改文本颜色

时间:2018-10-15 13:37:41

标签: ruby ruby-on-rails-4 ruby-on-rails-5

如果状态为“待处理”,则将“待处理”显示为蓝色。如果状态为“已接受”,则以绿色显示“已接受”。如果状态为“已拒绝”,则显示红色。

<% @applyleaves.each do |f| %>
<%= if f.status == 0
                 "Pending" 
       elsif f.status == 1
                 "Accepted"
       elsif f.status == 2
                 "Rejected"
       else
                 "Pending"
       end%>
</td>

1 个答案:

答案 0 :(得分:5)

如果您的状态列(属性)是整数,则可以使用枚举,这样您就只有3个有效值:

# model
enum status: { pending: 0, accepted: 1, rejected: 2 }

每个键给它们一个可读的值。因此,在您的视图中,您可以仅创建任何html标记,以分配一个类,该类先前已使用所需的彩色文本进行了定义:

<span class="<%= "#{f.status.downcase}_status" %>">
  <%= f.status.capitalize %>
</span>

CSS不仅限于此:

<style>
  .pending_status {
   color: blue;
  }
  .accepted_status {
   color: green;
  }
  .rejected_status {
   color: red;
  }
</style>