読者です 読者をやめる 読者になる 読者になる

Going Rails-way

Ruby on Rails 道を突き詰めたい

Mastodonを支えるgems

qiita.com

共通の振る舞いのspec

継承やmixinで振る舞いを共有するクラスがあるとき、共有する振る舞いのテストを個別に書いてたり、特定のクラスでだけ書くようでは、不十分だと思いました。 振る舞いが他の実装との兼ね合いで変わってしまったり、オーバーライドによって挙動が変わるなど…

クラスメソッド increment_counter と インスタンスメソッドincrement!

実際の動作 increment_counter irb(main):001:0> Post.increment_counter(:comments_count, 1) SQL (4.1ms) UPDATE "posts" SET "comments_count" = COALESCE("comments_count", 0) + 1 WHERE "posts"."id" = ? [["id", 1]] increment! irb(main):001:0> pos…

特定のspecで外部キー制約を無効にする

外部キー制約を使用すると、コード上のミスによりデータベースに不整合が発生するのを未然に防ぐことができてよい。 Active Record マイグレーション | Rails ガイド Rails:外部キー制約をマイグレーションで表現する方法 第四章 キーレスエントリ(外部キー…