为什么Model.all与rails 3中的Model.where('true')不同

Yul*_*ule 2 activerecord ruby-on-rails ruby-on-rails-3

我有一个查询,工作正常:

ModelName.where('true')
Run Code Online (Sandbox Code Playgroud)

我可以将其与其他AR调用链接,例如where,order等.但是当我使用时:

ModelName.all
Run Code Online (Sandbox Code Playgroud)

我收到"相同"的响应,但不能链接到哪里或命令它,因为它是一个数组而不是一个AR集合.虽然我没有使用第一种方法的实用问题,但似乎有点难看/不必要.有没有一种更干净的方式可以这样做.to_active_record_collection或什么?

Yul*_*ule 5

有一个简单的解决方案.而不是使用

ModelName.where('true')
Run Code Online (Sandbox Code Playgroud)

使用:

ModelName.scoped
Run Code Online (Sandbox Code Playgroud)