1

我有模型(容器),它接受嵌套属性(包括allow_destroyhas_one与另一个模型(reuse_request)的关系。如果在同一更新中将要销毁reuse_request,则容器模型中有一个before_validation我不想运行的回调。

有没有办法检查_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
4

1 回答 1

3

怎么用.marked_for_destruction?

def set_code
  return if reuse_request_as_new.marked_for_destruction?
  ...
end
于 2017-08-17T22:15:10.007 回答