2016-06-11 59 views

回答

1

with_scope现在被称为scoping在较新的Rails版本中。 with_exclusive_scope现在应该是unscoped。两种方法都接受一个块,以便您的代码可以正常工作。

有关更多信息,请参阅scopingunscoped的文档。

更新:如果在类本身上调用scoping方法不起作用。它必须在示波器上被调用(与在裸露模型类上工作的unscoped相反)。我会首先加入“无害”的范围all(它选择的所有记录,因此行为方式与裸模型类AuditArea相同)的选择,这样的send工作的这两种型号:

AuditArea.all.send(query_options[:include_retired] ? :unscoped : :scoping) { 
    # ... 
} 
+0

无范围的作品,但作用域仍然给出错误* NoMethodError异常:未定义的方法'作用域'为 –

+0

你能粘贴完整的错误吗?在Rails 4.1.9中''范围'**是** [定义的方法](https://github.com/rails/rails/blob/v4.1.9/activerecord/lib/active_record/relation.rb#L290)。 – BoraMa

+0

*** NoMethodError异常:未定义方法'范围'为#