Rails 3.2查询格式Postgres

时间:2012-03-29 20:43:50

标签: ruby-on-rails postgresql optimization

好的,目前我的模型中有以下内容:

has_many :current_monitorings, :class_name => "Monitoring",
:conditions => proc { [ 'monitorings.created_at > ?', Time.now.midnight ] }

我想为此添加一个条件,检查插座is_active属性是否设置为false。我尝试这样做:

has_many :current_monitorings, :class_name => "Monitoring",
:conditions => proc { [ 'monitorings.created_at > ? AND outlet.is_active = ?', Time.now.midnight, 'false' ] }

然而,这不起作用。我可能很愚蠢,但是非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

在您的sql中,outlet.is_active应为outlets.is_active。假设is_active是一个布尔字段,只需传递false而不是"false"

试试这个:

has_many :monitorings

def current_monitorings
  monitorings.joins(:outlets).where(
    'monitorings.created_at > ? AND outlets.is_active = ?',
    Time.now.midnight,
    false
  )
end