我有一个模型,其中定义了一些范围:
class Alarm < ActiveRecord::Base
scope :open_alarms, where("state != ?", AlarmStates::STATELIST[-1])
scope :new_alarms, where('state is null')
scope :site_alarms, lambda{ |site| where(:mac_address => site.mac_address)}
#etc
end
这些范围都是Relation对象,所以我应该能够在with_scope调用中链接它们。但我无法全力以赴。
我一直在尝试一些事情Alarm.with_scope(:find => Alarm.open_alarms){all}
,AFAIK,应将Relation Alarm .open_alarms应用于find,然后有效地查找与open_alarms范围匹配的所有警报。但是当我尝试这个时,我得到了一个'未识别的变量或方法“全部为”Main:Object“错误。我尝试过一系列变种,但似乎没有任何变化。
我想要的是能够链接一系列范围,然后应用分页,这样我就可以输出警报页面。
非常感谢任何帮助。
谢谢,
史蒂夫
答案 0 :(得分:0)
@alarms = Alarm.open_alarms.page(params [:page])
@alarms = Alarm.open_alarms.site_alarms(“http://sample.me”)。page(params [:page])
(使用gem will_paginate或kaminari)。
您似乎正在使用3.2之前的代码来进行查询。