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 %>
我正在编写一个应用程序,我想在其中根据主索引页面上的创建日期列出博客文章。因此,假设我今天创建了 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 %>