如何使用ActiveRecord将对象基于其start_on日期大于今天的日期将对象拉入数组

时间:2013-12-18 22:19:07

标签: ruby-on-rails activerecord

我有一堆事件,我想基于两列来提取它们。我需要将“发布”列设置为“特色”,并且我需要start_on列大于或等于今天的日期。

目前我有:

@featured_events = Event.where(publish: "Featured", ['start_on >= ?', Date.today]).all.sort_by &:start_on

我尝试了很多变种,但没有运气。

谢谢!

编辑::而我正在推动的数据库是mongo。 mongo是否限制'where'子句使用的参数数量?

2 个答案:

答案 0 :(得分:1)

@featured_events = Event
  .where("publish = 'Featured' AND start_on >= ?", Date.today)
  .order(:start_on).all

或使用2次where来电:

@featured_events = Event
  .where(publish: 'Featured')
  .where("start_on >= ?", Date.today)
  .order(:start_on).all

答案 1 :(得分:0)

  1. “date(start_on)> = date(?)”
  2. Time.zone.now而不是Date
  3. #1和#2的组合
  4. Event.where(发布:“精选”).whwre(['start_on> =?',Date.today])