Ruby on rails 解析和分隔日期/固定数字对象时遇到问题

Ruby on rails 解析和分隔日期/固定数字对象时遇到问题,ruby-on-rails,ruby,loops,Ruby On Rails,Ruby,Loops,我正在构建一个小应用程序,它将输入的内容输入一个输入字段,并在输入时直接显示在该输入字段的下方 我使用此代码的目标是按日期分隔这些条目,以便在6月1日发布的所有内容之间有一个换行符,6月2日的第一个条目与6月1日的条目之间有两个空格 这是我的代码,它没有按计划运行,但我不明白为什么,我认为它来自第3行,而我做得不正确。(注意:我知道这还不能解释月份或年份的变化。一旦我确定了合适的日期间隔,我就会开始讨论这个问题) 如果您能在这方面提供任何帮助,我们将不胜感激 块和迭代器就是它所处的位置 @all

我正在构建一个小应用程序,它将输入的内容输入一个输入字段,并在输入时直接显示在该输入字段的下方

我使用此代码的目标是按日期分隔这些条目,以便在6月1日发布的所有内容之间有一个换行符,6月2日的第一个条目与6月1日的条目之间有两个空格

这是我的代码,它没有按计划运行,但我不明白为什么,我认为它来自第3行,而我做得不正确。(注意:我知道这还不能解释月份或年份的变化。一旦我确定了合适的日期间隔,我就会开始讨论这个问题)


如果您能在这方面提供任何帮助,我们将不胜感激

块和迭代器就是它所处的位置

@allLessons = Lesson.order('created_at ASC')
@dates = @allLessons.group_by { |lesson| lesson.created_at.beginning_of_day }.sort

<% @dates.each do |date, lessons| %>
  <% lessons.each do |lesson| %>
    <b><%= lesson.created_at.strftime("%d") %></b><br />
  <% end %>
  <br />
<% end %>
然后我们将它们全部分组到一个散列中,其中键是日期,值是当天创建的记录数组<代码>开始日期将
日期时间
转换为
日期
,其中时间设置为
00:00:00
。所以,
2012-05-2518:00
变成了
2012-05-2500:00:00
。这样我们就可以在不受时间影响的情况下对日期进行分组

@dates = @allLessons.group_by { |lesson| lesson.created_at.beginning_of_day }.sort
@dates
现在是一个散列,其中键是日期,值是该日期的课程数组。例如,
{'2012-05-24 00:00:00'=>[lesson_1],2012-05-25 00:00:00'=>[lesson_2,lesson_3]

然后我们将散列传递到一个块中,其中键是日期,值是课程数组

<% @dates.each do |date, lessons| %>

给我那些属于那一天的教训。对于每一个

  <% lessons.each do |lesson| %>

打印出上课日期

    <b><%= lesson.created_at.strftime("%d") %></b><br />
  <% end %>

在继续下一个日期之前,请打印

  <br />
<% end %>


块和迭代器就是它所在的位置

@allLessons = Lesson.order('created_at ASC')
@dates = @allLessons.group_by { |lesson| lesson.created_at.beginning_of_day }.sort

<% @dates.each do |date, lessons| %>
  <% lessons.each do |lesson| %>
    <b><%= lesson.created_at.strftime("%d") %></b><br />
  <% end %>
  <br />
<% end %>
然后我们将它们组合成一个散列,其中键是日期,值是当天创建的记录数组。
start\u of_day
DateTime
转换为
date
,其中时间设置为
00:00
。因此,
2012-05-2518:00
变为
2012-05-2500:00:00
.这样我们就可以把日期自己分组,而不受时间的影响

@dates = @allLessons.group_by { |lesson| lesson.created_at.beginning_of_day }.sort
@dates
现在是一个散列,其中键是日期,值是该日期的课程数组。例如,
{'2012-05-24 00:00:00'=>[lesson\u 1],2012-05-25 00:00:00'=>[lesson\u 2,lesson\u 3]

然后我们将散列传递到一个块中,其中键是日期,值是课程数组

<% @dates.each do |date, lessons| %>

给我那些属于那一天的教训。对于每一个

  <% lessons.each do |lesson| %>

打印出上课日期

    <b><%= lesson.created_at.strftime("%d") %></b><br />
  <% end %>

在继续下一个日期之前,请打印

  <br />
<% end %>


谢谢!我对Ruby还不太熟悉,所以我还在学习积木。你能解释一下你是如何准确地计算出每天在哪里以及如何将积木分开的吗?是在
@dates=@allcourses
行吗?我仍然对这段代码的工作原理有点困惑确定!我要编辑这篇文章,所以给我几分钟时间。非常感谢。我要学习它他说的一塌糊涂。再次感谢你的帮助!:)这是一个惊人的解释,@xnm。非常感谢你!我真的很感谢你花这么多时间来解释这一点。就像我说的,我真的要学习和理解这一点,并在将来用它来踢屁股!谢谢!我对Ruby是新手,所以我还在学习积木。你能理解吗解释你到底是如何计算出每天在哪里以及如何将它们分开的?是在
@dates=@allLessons
行中吗?我仍然对这个代码是如何工作的有点困惑当然!我要编辑这篇文章,所以给我几分钟时间。非常感谢。我要研究一下这些内容。再次感谢你的帮助!:)这是一个了不起的发现解释,@xnm。非常感谢你!我真的很感谢你花这么多时间来解释这件事。就像我说的,我真的要学习和理解这件事,并用它在未来踢屁股!