我已经编写了一个方法来检索在给定年份内创建的所有文章。
def articles_for_year(year)
from = Date.strptime("#{year}-01-01").to_datetime
to = from.end_of_year
where(created_at: from..to)
en
这种方法感觉有点笨拙和低级。它能以更好的方式实现吗?
您可以使用lambda:将其转换为作用域
class Article
scope :in_year, -> {|year| where created_at: (year.beginning_of_year..year.end_of_year) }
end
我认为通过实际日期的论点比通过年份整数要好,但这是单独讨论的
也可以使用Time.mktime
方法创建日期对象,strptime
通常是非常慢的