この場合、正しい構文はどれですか?
概要
destroy_order_payment_detail というこの関数があり、依存オブジェクトを破棄しようとしています。機能しないのですが、正しい構文はどれですか?
has_one :order_payment_detail, inverse_of: :payment_order
accepts_nested_attributes_for :order_payment_detail, allow_destroy: true
before_destroy :destroy_order_payment_detail
private
def destroy_order_payment_detail
if :order_payment_detail.present?
:order_payment_detail.destroy
end
end
またはこれは :? なしです。
private
def destroy_order_payment_detail
if order_payment_detail.present?
order_payment_detail.destroy
end
end
解決策
依存する order_payment_detail を破棄したい場合は、コールバックを記述するよりも良い方法があり、単に次のように依存関係を宣言します。
has_one :order_payment_detail, inverse_of: :payment_order, dependent: :destroy
before_destroy コールバックは必要ありません