2020-02-08
久しぶり?の新作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
の情報があればもっといろいろできるんじゃないかなあ。
RuboCop RakeにIssueが来ていたのに今更気がついたので直した。
うーん、むずかしそうだなあ。そのうち見る……