提交 3053f526 编写于 作者: P Paco Guzman 提交者: Manoj

Same method for has_many and has_one associations

上级 38ffca55
......@@ -65,5 +65,20 @@ def dependent_restrict_deprecation_warning
ActiveSupport::Deprecation.warn msg
end
end
def define_restrict_dependency_method
name = self.name
mixin.redefine_method(dependency_method_name) do
# has_many or has_one associations
if send(name).respond_to?(:exists?) ? send(name).exists? : !send(name).nil?
if dependent_restrict_raises?
raise ActiveRecord::DeleteRestrictionError.new(name)
else
errors.add(:base, :restrict_dependent_destroy, :model => name)
return false
end
end
end
end
end
end
......@@ -53,20 +53,6 @@ def define_nullify_dependency_method
end
end
def define_restrict_dependency_method
name = self.name
mixin.redefine_method(dependency_method_name) do
if send(name).exists?
if dependent_restrict_raises?
raise ActiveRecord::DeleteRestrictionError.new(name)
else
errors.add(:base, :restrict_dependent_destroy, :model => name)
return false
end
end
end
end
def dependency_method_name
"has_many_dependent_for_#{name}"
end
......
......@@ -40,10 +40,6 @@ def configure_dependency
end
end
def dependency_method_name
"has_one_dependent_#{options[:dependent]}_for_#{name}"
end
def define_destroy_dependency_method
name = self.name
mixin.redefine_method(dependency_method_name) do
......@@ -53,18 +49,8 @@ def define_destroy_dependency_method
alias :define_delete_dependency_method :define_destroy_dependency_method
alias :define_nullify_dependency_method :define_destroy_dependency_method
def define_restrict_dependency_method
name = self.name
mixin.redefine_method(dependency_method_name) do
unless send(name).nil?
if dependent_restrict_raises?
raise ActiveRecord::DeleteRestrictionError.new(name)
else
errors.add(:base, :restrict_dependent_destroy, :model => name)
return false
end
end
end
def dependency_method_name
"has_one_dependent_#{options[:dependent]}_for_#{name}"
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册