Rails控制台:查询数据库

时间:2018-04-20 15:09:06

标签: ruby-on-rails database filter

我有一个模型报告,我在其中定义了这些列:

 class Report < ActiveRecord::Base {
             :id => :uuid,
   :declarant_id => :uuid,
      :reference => :integer,
        :sent_at => :datetime,
  :updated_by_id => :uuid,
      :device_id => :string,
     :created_at => :datetime,
     :updated_at => :datetime,
    :is_archived => :boolean,
        :step_id => :uuid
}

我希望过滤select查询以仅获取7天前创建的报告,我将此查询定义为与其他一些输入和方法相关:

r = Report.all.current.not_sent.only_finished_interventions.where("Report.created_at >= ?", 7.days.ago)

它不起作用!

当我这样做时:

r = Report.all.current.not_sent.only_finished_interventions

我收到了所要求的报告。

有人可以帮助添加7.days.ago的过滤器吗?

我在导轨c中遇到此错误:

  

ActiveRecord :: StatementInvalid:PG :: UndefinedTable:错误:丢失   表“报告”LINE 1的FROM子句条目:... AND   “活动”。“finished_at”不是NULL)和(Report.cre ...

1 个答案:

答案 0 :(得分:1)

这应该有效:

<强> .where("Reports.created_at >= ?", 7.days.ago)

只需输入报告

但我认为报告。在你的查询中没有必要bcs你不要加入表格,所以这也应该有效:

**`.where("created_at >= ?", 7.days.ago)`**