替换 Rails 3 中的 Find[:all]

Alx*_*rvs 1 ruby activerecord ruby-on-rails

相当菜鸟的问题:我知道 activerecord 弃用了从 Rails 2 到 Rails 3 的一堆内容。我见过这样的页面它可以解释如何用 User.where(etc 等替换复杂的字符串。

但是,现在可以进行简单替换的有效解决方案是什么?给定一个“User”类,我将如何更新 Rails 3 activerecord 的 User.find[:all] ?

Sub*_*orx 5

如果你想找到所有用户,你可以这样做

User.all # returns Array so you can not chain more Arel methods
Run Code Online (Sandbox Code Playgroud)

或范围方法,如果您正在使用它,则应用了 default_scope

users = User.scoped  # returns ActiveRelation array so you can chain more Arel methods 
users.where(...).order(...)
Run Code Online (Sandbox Code Playgroud)

或跳过 default_scope 的无作用域方法

User.unscoped # returns ActiveRelation array so you can chain more Arel methods 
users.where(...).order(...)
Run Code Online (Sandbox Code Playgroud)