1

我想知道存储用户颜色偏好的合适方法是什么。即假设允许用户根据对象类型选择新闻源的背景颜色。即,如果是图像,则背景为蓝色,如果是帖子,则为橙色等。

一个人应该怎么做呢?我能够区分我认为的所有不同类型。我目前有一个@feeds_item 集合列表,我渲染每个对象。然后我有一些类似的东西..

<% if feed_item.is_a? Post %>
    #render specific view

我正在考虑根据用户选择的内容设置颜色。但我应该怎么做呢?我应该将用户的颜色偏好保存在用户模型中,还是在帖子模型中?图像模型?

在我对 Post 对象的偏爱中,我有...

<li id="<%= feed_item.id %>">

  <%= link_to image_tag(feed_item.user.image_url(:thumb), :class => "image_avatar"), 
    feed_item.user %>

  <span class="user">
    <%= link_to feed_item.user.name, feed_item.user %>
  </span>
  <span class="content"><%= wrap(feed_item.content) %></span>
  <span class="timestamp">
    Posted <%= time_ago_in_words(feed_item.created_at) %> ago.
  </span>

  <% if current_user == feed_item.user %>
    <%= link_to "delete", feed_item, method: :delete, confirm: "You sure?", title: feed_item.content %>
    <% end %>
</li>

除了可能将 < li > 标签更改为...

<li id="<%= feed_item.id %>" style="background-color=#{ ????? }">

在哪里 ????将是数据库中的一列?这是做这件事的正确方法吗?

4

1 回答 1

1
  1. 您应该将首选项保存在它所属的模型中。如果所有偏好都属于用户,则将其保存在用户模型中。
  2. 声明样式的方式是:

    <li id="<%= feed_item.id %>" style="background-color:<%= feed_item.user.this_color %>">

  3. 考虑将其移至视图助手,以便您的视图可以保持简单。

于 2012-05-31T03:22:31.797 回答