rails循环后的随机文本

时间:2016-09-09 01:44:03

标签: ruby-on-rails

我创建了一个循环来显示所有博客帖子。我收到一个错误,在循环后显示随机文本:

random strings after loop

看起来有一堆文本在循环结束时列出了所有帖子信息,我不知道它是如何发生的以及如何解决它。

我检查了我的HTML和CSS,但无法弄清楚导致问题的原因。

以下是HTML和CSS代码:

<section id="posts" class="wrapper">
   <h2>My Latest Articles</h2>
   <hr>

   <div class="post_container">
       <%= @posts.each do |p| %>
       <div class="article">
           <h3 class="post_title"><%= link_to p.title, p %></h3>
           <p class="post_date"><%= p.created_at.strftime("%A,%b %d") %></p>
           <p class="content"><%= truncate(p.content, length: 400)  %></p>
       </div>
       <% end %>
   </div>

   <div class="button_wrapper">
       <a href="blog.html" class = "button">More Articles</a>
   </div>

</section>

CSS

#posts {
    padding: 6.5em 0 10em 0;
    h2 {
        text-align: center;
        color: $text;
        margin-bottom: 1.25rem;
    }
    .post_container {
        padding: 6em 0 6em 0;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        .article {
            max-width: 28%;
        }
        .post_title {
            color: $text;
            font-size: 1.6em;
        }
        .post_date {
            padding: .75rem 0;
            color: $accent;
            font-size: 1.2em;
        }
        .content {
            color: $grey;
        }
    }
}

3 个答案:

答案 0 :(得分:3)

<%= @posts.each do |p| %>

应该是

<% @posts.each do |p| %>

不输出.each的结果。

答案 1 :(得分:2)

这是因为你在循环开始时使用<%=。您可以使用<%代替

post_container div更改为:

<div class="post_container">
  <% @posts.each do |p| %>
    <div class="article">
      <h3 class="post_title"><%= link_to p.title, p %></h3>
      <p class="post_date"><%= p.created_at.strftime("%A,%b %d") %></p>
      <p class="content"><%= truncate(p.content, length: 400)  %></p>
    </div>
  <% end %>
</div>

答案 2 :(得分:1)

使用

<% @posts.each do |p| %>

因为&lt; =%&gt;用于打印您的情况下的值,它将打印整个循环