rails如何使用对象显示的时间段?

时间:2016-04-12 01:57:28

标签: ruby-on-rails schedule

我在rails应用中创建了一些类别。我想根据时间设置的不同时间来决定何时展示文章。我正在寻找一种更好的方法来做到这一点,因为我不认为在这种情况下需要使用gem

我想问的问题是:

1.how to set time period for Category
2.how to check the time period(maybe use between?) when conducting query,
3.all schedules can be displayed like a google calendar(use simple_calendar), the entire schedule will be showed in my backstage.

我首先提出的解决方案是在类别中创建两个日期列,并定义开始时间结束时间

有没有更好的方法来处理这个问题?是否有专门用于此目的或这种情况的宝石?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,Category是用户可以动态创建的时间段。会有一些不同的Articles也会有一段与之相关的时间段。如果Articles时间属于Category的开始和结束时间,Articles's将落入Category。如果是这种情况,则时间段必须具有开始和结束时间。如下所示:

# Category Class

class Category < ActiveRecord::Base
  # Omitting rest of the class..

  def articles_created_between(time_range)
    articles.where(created_at: time_range)
  end
end

然后您可以加载类别:

category = Category.last

找到该类别中的文章:

articles = category.articles_created_between((Time.now.midnight - 1.day)..Time.now.midnight)

有关更多信息,请参阅远程条件: http://guides.rubyonrails.org/active_record_querying.html#hash-conditions