ruby-on-rails - 按创建天数分组_At

标签 ruby-on-rails ruby-on-rails-3

我正在尝试循环发布按created_at每天分组的视频。

例如:

2012 年 12 月 5 日 - 视频9 视频8 视频7

2012 年 12 月 4 日 - 视频6 视频5

2012 年 12 月 3 日 - 视频4 视频3 视频2 视频1

videos_controller:

  def index
    @title = 'Hip Hop Videos, Breaking News, Videos, And Funny Shxt | HOTDROPHIPHOP'
    @description = ''
    @videos = Video.all
    @days = Video.where(:created_at == Time.today )
  end

查看文件:

<% @days.each do |day| %>

  <div class="video-date">December 4, 2012</div>

  <% @videos.each do |video| %>
  <% end %>

<% end %>

我还需要让该 div 也显示当天的日期。

我四处搜索,找不到解决方案,并尝试了 group_by (这似乎是最干净的),但无法让它工作。我对 Rails 有点生疏了,因为我已经好几个月没有碰它了。

最佳答案

你可以这样做:

@videos = Video.where(Video.arel_table[:created_at].gteq(some_date_value))
@video_days = @videos.group_by {|video| video.created_at.to_date }

其中 @video_days 将为 {some_date_value: [{video1}, {video2}, etc], next_date_value: [{video3}, {video4},等等],等等...}.

由于您在 created_at 字段上调用 ​​.to_date,因此它将删除所有时间信息,从而有效地将所有内容按天分组。

您可以像这样循环遍历它:

<% @video_days.each do |day, videos| %>
  <%= day.strftime("some format") %>
  <% videos.each do |video| %>
    <%= #output videos how you see fit %>
  <% end %>
<% end %>

关于ruby-on-rails - 按创建天数分组_At,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748284/

相关文章:

ruby-on-rails-3 - 如何创建 Rails 3.2.* 应用程序?

ruby-on-rails - 在 Rails 中跟踪代码时遇到问题

ruby-on-rails - Twitter Bootstrap & rails - 内容居中并固定最小宽度

ruby-on-rails - Rails 3. 如何从查询结果中删除重复的关联记录?

ruby-on-rails - Rails 页面特定维护模式

ruby 轨道 : how to link employees table with devise authentification

ruby-on-rails - Ruby If 语句重构

ruby-on-rails-3 - 访问Mongoid 3主节点

ruby-on-rails - 每当我创建新的 Rails 应用程序时,如何创建 Postgres 用户和数据库?

jquery - 如何在 Rails 上安装 jQuery 插件?