scopeはlambdaで書いて
軽くハマッたので。
class User < ActiveRecord::Base scope registered:, where(registered: true) end
って書いてしまうと
User.registered.where('age < 20')
こう書いたときと
User.where('age < 20').registered
こう書いたときの結果が変わってしまう。*1
具体的には開発時とかに追加したはずのデータが正しく取得されなかったりする。
Rails4以降でのscopeの書き方はlambdaが必須なので、以下のように書くのが正しい。
class User < ActiveRecord::Base scope registered:, -> {where(registered: true)} end
*1:というか、正常に動いてないんだけど