diary

I like Hatena Star with a text selection.

2020-02-08

github.com

久しぶり?の新作Copです。

class Article < ApplicationRecord
  validates :user_id, uniqueness: true
end

このようなvalidationsがある時に、user_idにDBでunique indexが張られていなかったら怒るCop。 indexがないと結局uniqueにならなかったり、テーブルが育ってくると重いクエリがinsert/updateの度に走って破滅したりする。

これを実装するにはRuboCopがdb/schema.rbの情報を知らないといけないので、db/schema.rbをパースしていい感じにするコードを書いた。 rubocop-railsが本体から分離したのでこういうコードもガンガン入れていける気がする。

とりあえずこのCopを実装してみたけど、db/schema.rbの情報があればもっといろいろできるんじゃないかなあ。


github.com

RuboCop RakeにIssueが来ていたのに今更気がついたので直した。


github.com

うーん、むずかしそうだなあ。そのうち見る……