ActiveRecord の with_options に関する注意書き
with_options (Object) - APIdock にて、ActiveRecord の with_options について注意書きが書かれていたのでメモ。 和訳はちょっと雑です。
with_options はネストすることができ、receiver に引き継がれます。
メモ: ネスト階層は継承したデフォルトオプション値を自身のオプションとマージします。
class Post < ActiveRecord::Base with_options if: :persisted?, length: { minimum: 50 } do validates :content, if: -> { content.present? } end end
このコードは以下と等価です。
validates :content, length: { minimum: 50 }, if: -> { content.present? }
継承されたデフォルトの if キーは無視されます。