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

gir*_*ran 1 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>
Run Code Online (Sandbox Code Playgroud)

Seb*_*lma 6

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

# model
enum status: { pending: 0, accepted: 1, rejected: 2 }
Run Code Online (Sandbox Code Playgroud)

每个键给它们一个可读的值.因此,在您的视图中,您可以创建任何html标记,以便分配您之前使用所需颜色文本定义的类:

<span class="<%= "#{f.status.downcase}_status" %>">
  <%= f.status.capitalize %>
</span>
Run Code Online (Sandbox Code Playgroud)

CSS不超过这个:

<style>
  .pending_status {
   color: blue;
  }
  .accepted_status {
   color: green;
  }
  .rejected_status {
   color: red;
  }
</style>
Run Code Online (Sandbox Code Playgroud)