Rails ActiveRecordには、belongs_to
のoptional
オプションがあります。外部キーにnullを許可し、オブジェクトの作成中に関連付けをnullにするが、後続の保存ではその存在を要求するというユースケースを考えてみてください。たとえば、新しいメンバーには最初のグループはないかもしれませんが、それ以上のメンバーの更新にはグループの関連付けが必要です。ActiveRecord belongs_to関連付けのオプション条件をどのように宣言しますか?
optional
オプション値自体を条件付きにすることはできますか?例えば、
class Member < ApplicationRecord
belongs_to :group, optional: -> { new_record? }
end
はoptional: true
と同じように動作し、我々はoptional
オプションがtruthy値のためにのみチェックを解析することを推測することができます。
カスタムバリデーターは、このユースケースを満たすための現実的な方法ですか?
:
私はあなたがこのようなものでカスタムルートを行くことができると信じています。ソースを引用していただきありがとうございます。 – ybakos