Active Record Extended

Rails で DB に PostgreSQL を使う場合に、導入しておきたい ActiveRecord の拡張ライブラリ。

https://github.com/GeorgeKaraszi/ActiveRecordExtended

CTE や union などを ActiveRecord で記述できるようになる。

---2022/06/28

Related Scraps:

Devise の User モデルの分割

Perfect Rails の著者が、 Devise の User モデルを分解して、モダンな感じで利用する方法を示す記事。

pg-boss

PostgreSQL にて JobQueue を実現するライブラリ

https://openbase.com/js/pg-boss

Rails でカラム削除

`ignore_columns` を指定してリリースし、その状態でカラム削除して、 ignore_columns を消して再度リリースする。

ActiveRecord の autosave

ActiveRecord の relation 定義には、 autosave を指定できるが、その挙動のまとめ。

load_async

.load_async で起動。 グローバルなスレッドプールのコネクションを利用して、別途で ActiveRecord をロードする仕組み。

ActiveRecord で MySQL の共有レコードロックを取得する

relation.lock('LOCK IN SHARE MODE')

ActiveRecord のデフォルト値

ActiveRecord は、 DB のデフォルトを読み込んで、それをモデルのデフォルト値として採用する。

dependent: :destroy の実装は before_destroy

中の方で、 before_destroy によるフックで dependent: :destroy は実現されている。

has_many :rel_name, scope

rails は、 relation と relation のジョイン、と認識している様子。 具体的には、 scope 条件は、 JOIN ... ONON の中の条件に追加される。

paranoia

#delete メソッドと #destroy メソッドをオーバーライドするライブラリ。 default_scopeparanoia_scope まで導入してくれたりする。