https://github.com/GeorgeKaraszi/ActiveRecordExtended
CTE や union などを ActiveRecord で記述できるようになる。
---2022/06/28
Devise の User モデルの分割
Perfect Rails の著者が、 Devise の User モデルを分解して、モダンな感じで利用する方法を示す記事。
pg-boss
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 ... ON
の ON
の中の条件に追加される。
paranoia
#delete
メソッドと #destroy
メソッドをオーバーライドするライブラリ。
default_scope
で paranoia_scope
まで導入してくれたりする。