2019/01/31
>
とか<
など)やlike
を使う場合は生のSQLを書く必要があってイケてないなーと思ってた
ActiveRecord::Concern
を利用したモジュールを作り、それをActiveRecord::Base
に対してextendしています(gem公開してからの話ですが、、) 対象のモデルにArelableをincludeした上でお使いください。
class User < ActiveRecord::Base
include Arelable #<= これでok
end
User.gt(:age, 35)
# => SELECT COUNT(*) FROM `users` WHERE (age > 35)
User.geteq(:age, 35)
# => SELECT COUNT(*) FROM `users` WHERE (age >= 35)
User.lt(:age, 35)
# => SELECT COUNT(*) FROM `users` WHERE (age < 35)
User.lteq(:age, 35)
# => SELECT COUNT(*) FROM `users` WHERE (age <= 35)
User.bw(:age, [35, 40])
# => SELECT COUNT(*) FROM `users` WHERE (age BETWEEN 35 AND 40)
User.matches(:name, "Bo")
# => SELECT COUNT(*) FROM `users` WHERE (first_name LIKE '%Bo%')
bin/rails db:migrate
とかしててほんと楽だぁなと..