我在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.
我首先提出的解决方案是在类别中创建两个日期列,并定义开始时间和结束时间。
有没有更好的方法来处理这个问题?是否有专门用于此目的或这种情况的宝石?
答案 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