1

has_oneの別のモデル(reuse_request)との関係でネストされた属性(allow_destroyを含む)を受け入れるモデル(コンテナ)があります。コンテナモデルにbefore_validationというコールバックがあります。このコールバックは、reuse_requestが同じ更新で破棄されようとしている場合には実行したくありません。Rails 4ネストされた属性_destroyフラグがモデル内から設定されているかどうかをチェックする方法

_destroy属性がコンテナモデルbefore_validationコールバック内から渡されたかどうかを確認する方法はありますか?

#container.rb 
before_validation :set_code 
has_one :reuse_request_as_previous, class_name: 'ReuseRequest', foreign_key: 'previous_container_id', dependent: :destroy, inverse_of: :previous_container 
accepts_nested_attributes_for :reuse_request_as_new, :allow_destroy => true 

def set_code 
    if reuse_request_as_new && reuse_request_as_new.previous_container 
    self.code = reuse_request_as_new.previous_container.code 
    end 
end 

答えて

1

.marked_for_destruction?はどうですか?

def set_code 
    return if reuse_request_as_new.marked_for_destruction? 
    ... 
end 
+0

ありがとうございます!私はそのことを忘れてしまった。 –

関連する問題