ActiveRecord の autosave

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

associated object の状態により分岐する模様。

autosave なしautosave: trueautosave: false
新規 saveされるされるno touch
updateno touchされるno touch
(新規かつ) validation error親のみ save / 子は error全体 rollbackno touch

Related Scraps:

ActiveRecord のデフォルト値

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

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

relation.lock('LOCK IN SHARE MODE')

aws-record

AWS が提供する ruby 系の gem で、DynamoDBをバックエンドとする ORM を提供する。 DynamoDB は RDB ではないので、ActiveRecord としては提供されず、独自 ORM という形式が取られている。

Rails でカラム削除

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

Active Record Extended

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

aws-sdk-rails

Rails を aws 上で動かす際に欲しくなる機能もろもろを提供うる AWS のオフィシャル gem。

factory_bot

テストデータのファクトリーを定義する、おそらく一番有名な rails 系のライブラリ。 RSpec と一緒に導入されるケースがほとんど。

Pundit

View にて pundit の policy を利用する例: Helper にて Pundit を手動で呼び出している。

RSpec

未成功のテストは以下の2つのいずれかを指定できる。

  • skip: そもそも実行されない。 xit などで指定可能
  • pending: fail する状態を明示し、成功するようになったら気付けるようにする

---2022/11/24