1

如何在 rails4.1.9 中替换此查询

   AuditArea.send(query_options[:include_retired] ? :with_exclusive_scope :  :with_scope) {

     # some stuff
  }

获取错误未定义的方法`with_scope'。

4

1 回答 1

1

现在在较新的 Rails 版本中with_scope调用。现在应该是。这两种方法都接受一个块,因此您的代码应该可以正常使用它们。scopingwith_exclusive_scopeunscoped

有关更多信息,scoping请参阅文档。unscoped

更新:如果在类本身上调用该scoping方法将不起作用。它必须已经在范围内调用(而不是unscoped在裸模型类上工作)。我首先将“无害”范围all(它选择所有记录,因此与裸模型类的行为方式相同AuditArea)添加到选择中,以便send工作的两个变体:

AuditArea.all.send(query_options[:include_retired] ? :unscoped : :scoping) {
  # ...
}
于 2016-06-11T06:56:52.017 回答