2018年3月14日水曜日

Rails 6から使えるようになる予定のActiveRecordのpickをバックポートするGemを作りました

Rails 6から追加される予定のActiveRecord::Relation#pickをRails 5系とRails 4.2で使えるようにバックポートするGemを勝手に作りました。
https://github.com/yujideveloper/activerecord-pick

ActiveRecord::Relation#pickとは

DHHがPRしていたPerson.where(id: 1).limit(1).pluck(:name).firstみたいなのをPerson.where(id: 1).pick(:name)のように書けるようにするものです。
特定のレコードのとあるカラムの値だけほしいとか稀によくあるやつを解消するやつです。

なぜ作ったか

僕がお仕事とかで使いたいケースがいくつか思いついたからです。普通に便利そうなのでRails 6を待たずに早く使いたいですよね。
モンキーパッチ書いて使えるようにしても良かったのですがどうせならGemにしたいよねってことで。

これを作ってるときにActiveRecord::Base.pickActiveRecord::Base.alldelegateされてないことに気付いて初めてRailsにPRしてみたりしました。速攻取り込まれてうれしかったです。

何か気づいた点などありましたらPRお待ちしています。

0 件のコメント:

コメントを投稿