一个月内创建的 Rails 范围

2024-02-20

我在编写模型范围时遇到了一些问题。我想根据模型对象发布的月份来过滤模型对象,即模型 BlogPost :

scope :published_in_month, ->(date) { where(published_date: date.at_beginning_of_month..date.at_end_of_month) }

这是我的控制器方法:

def list_by_month
    @date = Time.parse("#{params[:year]}/#{params[:month]}")
    puts "DATE IS #{@date}"
    @posts = BlogPost.published_in_month(@date).page(params[:page]).per(10)
    render :index
  end

所以我看到的打印日期是:

DATE IS 2013-12-01 00:00:00 +0100

但在我的日志和我看到错误月份的帖子的页面中,这是一个条目日志:

SELECT "blog_posts".* FROM "blog_posts" WHERE ("blog_posts"."published_date" BETWEEN '2013-11-30 23:00:00.000000' AND '2013-12-31 22:59:59.999999') LIMIT 10 OFFSET 0

这是哪里2013-11-30来自我的输入日期的时间2013-12-01,如果我犯了错误而产生了错误的查询,我该如何重写我的范围


这可以帮助:

scope :from_month, -> { where(created_at: DateTime.now.beginning_of_month..DateTime.now.end_of_month) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个月内创建的 Rails 范围 的相关文章

随机推荐