首页 > 解决方案 > 在 Rails 中如何处理基于用户的动态颜色变化?

问题描述

所以我们有七位导演拥有自己的节目页面。我正在尝试确定最佳、最干净的方式来处理显示页面上具有颜色块和指向其部门的链接的部分。到目前为止,我提出了两个选择。

选项 1 - CSS 和条件语句

<% if @user.id == 5 %>
 <div id="bill-franklin">
   CONTENT
<% elsif @user.id == 6 %>
 <div id="joan-smith">
   CONTENT

然后所有样式都基于 CSS 中的 id。笨重但有效。

选项 2 - 将颜色应用于数据库并将其放在代码中。

<div class="<%= @user.color %>" >
  CONTENT
</div>

是否有另一个选项比选项 1 更干净并且不涉及我像 2 一样添加到数据库中?

标签: ruby-on-rails

解决方案


如果您有无限数量的用户,则需要在数据库上添加一些配置。如果不这样做,您可以根据用户数据创建 css 类。例如:

<div class="my_user_<%= @user.id %>" >
  CONTENT
</div>

现在,在您的 css 文件中,您可以执行以下操作:

.my_user_1 { background-color: red; }
.my_user_2 { background-color: blue; }

使用比用户 id 更好的东西来构建自定义类会很好


推荐阅读