0

なんらかの理由で、スタイルシートを製品に正しく適用できません。「Rails 4th Edition を使用したアジャイル Web 開発」という本に従っています。本では商品表の背景がピンク色と他の色で交互になっているように見えます。

私はレールの初心者で、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
 */

または、マニフェスト ファイル内で require する代わりに、特定のコントローラーの css を次のようにレイアウトに含めます。

<%= stylesheet_link_tag params[:controller] %>

また、質問をする前のベスト プラクティスとして、ブラウザに特定の css が含まれているかどうかを確認してください。開発者ツールを使用して、コンパイルされた css またはドキュメント構造を検査します。

一番

于 2012-11-24T10:07:14.690 に答える