如何在rails4.1.9中替换此查询
AuditArea.send(query_options[:include_retired] ? :with_exclusive_scope : :with_scope) {
# some stuff
}
获取错误未定义方法`with_scope'。
答案 0 :(得分:1)
with_scope
现在在较新的Rails版本中称为 scoping
。 with_exclusive_scope
现在应该 unscoped
。两种方法都接受一个块,因此您的代码应该可以正常工作。
有关详细信息,请参阅scoping
和unscoped
的文档。
更新:如果在类本身上调用scoping
方法,则该方法不起作用。它必须在范围内调用(而不是unscoped
,它适用于裸模型类)。我会首先添加"无害"范围all
(选择所有记录,因此行为与裸模型类AuditArea
的行为相同)到select,以便send
的两个变体都可以工作:
AuditArea.all.send(query_options[:include_retired] ? :unscoped : :scoping) {
# ...
}