如何根据类值更改框颜色

时间:2016-08-10 13:01:58

标签: css ruby-on-rails ruby

我在这样的循环中有一个代码

<td id = box, class =<%= book_ty(article)%>><%= article.book_type %></td>

book_ty等于x时,该框将变为红色,如果为y,则该框将为橙色。现在颜色直接应用于article.book_type我想将这些颜色应用到id

我在articles.helper.rb中定义了一个方法,即

def book_ty(article)
 case article.book_type
  when "x"
     "x"
  when "y"
     "y"
  when "z"
     "z"
end
end
article.scss

中的

.x {
  color: red;
}
.y{
  color: orange;
}
.z{
  color: green;
}

#box {
 width: 50px;
 height: 50px;
 display: inline;
 margin-right: 10px;
}

如何根据类值更改框颜色?

2 个答案:

答案 0 :(得分:1)

您不需要辅助方法,article.book_type已经返回td的类。

<td id="box" class="<%= article.book_type %>"><%= article.book_type %></td>

但你的头衔对我来说还不清楚

如何根据类值获取css id?

答案 1 :(得分:0)

如果我正确解析了问题,您想要将css修改为:

#box .x { color: red }

等等。以上内容会将颜色应用于具有class="x"id="box"的元素。

或者,您可以将红宝石更改为:

<td id="box_<%= book_ty(article)%>"><%= article.book_type %></td>

并将css修改为:

#box_x { color: red }

或者,结合上述解决方案。