class User < ActiveRecord::Base scope :male, ->{ where(sex: :male) } # 男性 scope :female, ->{ where(sex: :female) } # 女性 scope :adult, ->{ where(arel_table[:age].gteq 20) } # 成人 scope :minor, ->{ where(arel_table[:age].lt 20) } # 未成年 scope :men, ->{ adult.male } # 成人,男性 scope :women, ->{ adult.female } # 成人,女性 scope :boys, ->{ minor.male } # 未成年,男性 scope :girls, ->{ minor.female } # 未成年,女性 end User
![既存のscopeからor条件のSQLを組み立てる - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/d515c081bef65a8ac3c8da234f98be9cd76d3aba/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUU2JTk3JUEyJUU1JUFEJTk4JUUzJTgxJUFFc2NvcGUlRTMlODElOEIlRTMlODIlODlvciVFNiU5RCVBMSVFNCVCQiVCNiVFMyU4MSVBRVNRTCVFMyU4MiU5MiVFNyVCNSU4NCVFMyU4MSVCRiVFNyVBQiU4QiVFMyU4MSVBNiVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MDNmNzQxNWM4MWYyM2UxNTExNWRhNWU2ZDVhODYwM2Q%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaWNoaV9zJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02OWNlZWUxNzk4ZGQ1ZTRmZGI1MDgwZGQ2N2QzYmQzYQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd4b86c0eec5d8c993040e51664da8f90)