I made a scope help me to select objects 
  scope :best_of_the_month, ->(year, month) do
    time = Time.new(year, month)
    start_time = time.beginning_of_month
    end_time = time.end_of_month
    where("created_at > ? AND created_at < ?", start_time, end_time).where("likes > ?", 15).where("rating > ?", 4.85).order_by_rating.to_a.uniq(&:author)
  end
Then, I want to loop through this method, from 2014/1 to now. How can I do it?
Maybe something like this:
  start_date = Date.create(2014,1).month
  end_date = Date.today.month
  @monthly_videos = []
  (start_date..end_date).each do |year, month|
    videos = Video.best_of_the_month(year, month)
    @monthly_videos << videos
  end
I find a solution here, How to Loop through Months in Ruby on Rails. But it seems about looping through the days. Not the month