0

我正在完成 Michael Hartl 的 Rails 教程第 10.2.2 章示例 Microposts

访问http://ruby.railstutorial.org/chapters/user-microposts?version=3.2#sec-creating_microposts

我遇到了配置文件页面 css 无法正确呈现的问题。Rspec 通过,页面加载,我可以毫无问题地浏览整个站点。css 代码由将 css 代码链接到 rails 输出的类调用。我会尽可能多地粘贴我能想到的信息。 注意: 我是 Rails 编程或面向对象的任何东西的绝对初学者,因此请在您的回答中具体说明,因为我可能还没有理解该主题的经验。

我会发布图片,但我还没有获得所需的声誉点数。

这里有一些代码......

这是未正确呈现的个人资料页面的 HTML

<% provide(:title, @user.name) %>
<div class="row">
  <aside class="span4">
    <section>
      <h1>
        <%= gravatar_for @user %>
        <%= @user.name %>
      </h1>
    </section>
  </aside>

  <div class="span8">
    <% if @user.microposts.any? %>
      <h3>Microposts (<%= @user.microposts.count %>)</h3>
      <ol class="microposts">
        <%= render @microposts %>
      </ol>
      <%= will_paginate @microposts %>
    <% end %>
  </div>

</div>

这是此页面的 css 代码

/* microposts */

  .microposts {
    list-style: none;
    margin: 10px 0 0 0;

    li {
      padding: 10px 0;
      border-top: 1px solid #e8e8e8;
    }
  }
  .content {
    display: block;
  }

  .timestamp {
    color: $grayLight;
  }

  .gravatar {
    float: left;
    margin-right: 10px;
  }

  aside {
    textarea {
      height: 100px;
      margin-bottom: 5px;
    }
  }

此外,如果用户登录,主页也会调用此 css 代码来呈现微博。该页面也无法正确呈现微博。主页 HTML 如下

<% if signed_in? %>
  <div class="row">
    <aside class="span4">
      <section>
        <%= render 'shared/user_info' %>
      </section>
      <section>
        <%= render 'shared/micropost_form' %>
      </section>
    </aside>
     <div class="span8">
      <h3>Micropost Feed</h3>
      <%= render 'shared/feed' %>
    </div>
  </div>  
<% else %>

  <div class="center hero-unit">

    <h1>Welcome to the Sample App</h1>

        <h2>
            This is the home page for the
            <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
            sample application <br>Sample App Tutorial Completed by Jake Danforth.
        </h2>

        <%= link_to "Sign up now... Because it's Awesome!!!", signup_path, class: "btn btn-large btn-primary" %>
    </div>

    <%= link_to image_tag("rails.png", alt: "Rails"), 'http://rubyonrails.org/' %>
<% end %> 

最后一个代码调用 _user_info.html.erb 文件,该代码包含在下面

<a href="<%= user_path(current_user) %>">
  <%= gravatar_for current_user, size: 52 %>
</a>
<h1>
  <%= current_user.name %>
</h1>
<span>
  <%= link_to "view my profile", current_user %>
</span>
<span>
  <%= pluralize(current_user.microposts.count, "micropost") %>
</span>

随着我不断解决此问题,我将更新我能找到的内容。问题在于 <%= render @microposts %> 调用 @microposts 变量(对吗?)。这在文件 users_controller.rb 中定义为

    def show
    '@user = User.find(params[:id])
    '@microposts = @user.microposts.paginate(page: params[:page])
  end

据我所知,这不会导致css文件。不知何故,这需要调用 css 文件中的 .microposts 类来呈现。

4

1 回答 1

0

我在 CSS 代码中发现了一个错误。我重新排列了 CSS 代码以进一步清理它,并找到了一个额外的括号。我不知道为什么代码仍然没有错误地渲染页面,但是,当我移除括号时,它开始按预期渲染屏幕。我将把这个文件留在网上,以防其他人在尝试本教程并遇到括号问题。确保左括号和右括号相等!

于 2013-02-18T19:02:39.637 回答