0

出于某种原因,我无法将样式表正确应用到我正在阅读“使用 Rails 第四版的敏捷 Web 开发”一书的产品中。在这本书中,产品表内的背景看起来与粉红色和其他颜色交替出现。

我是 Rails 的新手,我对 CSS 或 SCSS 还不太了解。

文件 ../depot/app/assets/stylesheets/products.css.scss 具有以下内容:

/* START_HIGHLIGHT */
.products {
  table {
    border-collapse: collapse;
  }

  table tr td {
    padding: 5px;
    vertical-align: top;
  }

  .list_image {
    width:  60px;
    height: 70px;
  }

  .list_description {
    width: 60%;

    dl {
      margin: 0;
    }
dt {
      color:        #244;
      font-weight:  bold;
      font-size:    larger;
    }

    dd {
      margin: 0;
    }
  }

  .list_actions {
    font-size:    x-small;
    text-align:   right;
    padding-left: 1em;
  }

  .list_line_even {
    background:   #e0f8f8;
  }
  .list_line_odd {
    background:   #f8b0f8;
  }
}
/* END_HIGHLIGHT */

这是 ..app/views/products/index.html.erb

<h1>Listing products</h1>

<table>
<% @products.each do |product| %>
  <tr class="<%= cycle('list_line_odd', 'list_line_even') %>">

    <td>
      <%= image_tag(product.image_url, class: 'list_image') %>
    </td>

    <td class="list_description">
      <dl>
        <dt><%= product.title %></dt>
        <dd><%= truncate(strip_tags(product.description),
               length: 80) %></dd>
      </dl>
    </td>

    <td class="list_actions">
      <%= link_to 'Show', product %><br/>
      <%= link_to 'Edit', edit_product_path(product) %><br/>
      <%= link_to 'Destroy', product,
                  confirm: 'Are you sure?' ,
                  method: :delete %>
    </td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New product', new_product_path %>

和 ..app/views/layouts/application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Depot</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<!-- START_HIGHLIGHT -->
<body class'<%= controller.controller_name %>'>
<!-- END_HIGHLIGHT -->

<%= yield %>

</body>
</html>
4

1 回答 1

1

首先

<body class'<%= controller.controller_name %>'>

我认为这里缺少 =:

<body class='<%= controller.controller_name %>'>

第二个

如果没有清单文件(application.css),很难说您是否需要该样式表,但我想它应该是:

/*
 *= require_self
 *= require products
 */

甚至更好,而不是在清单文件中要求,以这种方式在布局中包含特定控制器的 css:

<%= stylesheet_link_tag params[:controller] %>

在您提问之前,为了获得最佳实践,请确保您的浏览器中是否包含特定的 css。使用开发人员工具检查编译的 CSS 或文档结构。

最好的

于 2012-11-24T10:07:14.690 回答