相关疑难解决方法(0)

使用Rails 4时,不推荐使用Model.scoped,但Model.all不能替换它

Model.scoped现在不推荐使用Rails 4 .

DEPRECATION WARNING: Model.scoped is deprecated. Please use Model.all instead.

但是,有一个区别Model.scopedModel.all,也就是说,scoped.scoped返回一个范围,而all.all运行该查询.

在Rails 3上:

> Model.scoped.scoped.is_a?(ActiveRecord::Relation)
=> true
Run Code Online (Sandbox Code Playgroud)

在Rails 4上:

> Model.all.all.is_a?(ActiveRecord::Relation)
DEPRECATION WARNING: Relation#all is deprecated. If you want to eager-load a relation, you can call #load (e.g. `Post.where(published: true).load`). If you want to get an array of records from a relation, you can call #to_a (e.g. `Post.where(published: true).to_a`).
=> false
Run Code Online (Sandbox Code Playgroud)

库/关注中的用例会scoped在有条件执行某些操作时返回,如下所示:

module AmongConcern
  extend ActiveSupport::Concern

  module …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails-4

76
推荐指数
4
解决办法
2万
查看次数

标签 统计

activerecord ×1

ruby-on-rails-4 ×1