Rails 一直忽略视图中的 IF 语句

Rails keeps ignoring an IF statement inside the view

我正在编写一个应用程序,我想在其中根据主索引页面上的创建日期列出博客文章。因此,假设我今天创建了 10 篇博文,我希望在应用程序的索引页面上出现这样的内容......

今天:

POST 1

POST 2

POST 3

...等等

但是,我有这个...

今天:

POST 1

今天:

POST 2

今天:

POST 3

...等等

以下是我的代码..

index.html.erb

<% @posts.reverse.each do |post| %>

    <% flag = true %>
    <% if post.date.day < Time.now.day && 
          post.date.day >= (Time.now.day - 1.day) %>

        <!-- This IF statement gets ignored -->  
        <% if flag == true %>
            <%= "Today" %>
            <% flag = false %>
            <br />
        <% end %>

        <tr>
            <td><p>IMAGINE THIS SENTENCE IS ONE POST</p></td>
        </tr>

    <% end %>
<% end %>

在代码中被忽略的 if 语句作为一个标志,因此它应该只在同一日期的每组帖子中执行一次。但是,Rails 似乎出于某种原因完全忽略了它。如果有人可以帮助我纠正这个问题或将我推向正确的方向,将不胜感激。

并不是 if 被忽略了,而是在每个 post 上,标志再次设置为 true

第一次设置标志必须在迭代之外,如下所示:

<% flag = true %>

<% @posts.reverse.each do |post| %>

    <% if post.date.day < Time.now.day && 
          post.date.day >= (Time.now.day - 1.day) %>

        <% if flag == true %>
            <%= "Today" %>
            <% flag = false %>
            <br />
        <% end %>

        <tr>
            <td><p>IMAGINE THIS SENTENCE IS ONE POST</p></td>
        </tr>

    <% end %>
<% end %>