method
configure_dependency_for_has_one
v2.1.0 -
Show latest stable
- Class:
ActiveRecord::Associations::ClassMethods
configure_dependency_for_has_one(reflection)private
No documentation available.
# File activerecord/lib/active_record/associations.rb, line 1285
def configure_dependency_for_has_one(reflection)
if reflection.options.include?(:dependent)
case reflection.options[:dependent]
when :destroy
method_name = "has_one_dependent_destroy_for_#{reflection.name}".to_sym
define_method(method_name) do
association = send("#{reflection.name}")
association.destroy unless association.nil?
end
before_destroy method_name
when :delete
method_name = "has_one_dependent_delete_for_#{reflection.name}".to_sym
define_method(method_name) do
association = send("#{reflection.name}")
association.class.delete(association.id) unless association.nil?
end
before_destroy method_name
when :nullify
method_name = "has_one_dependent_nullify_for_#{reflection.name}".to_sym
define_method(method_name) do
association = send("#{reflection.name}")
association.update_attribute("#{reflection.primary_key_name}", nil) unless association.nil?
end
before_destroy method_name
else
raise ArgumentError, "The :dependent option expects either :destroy, :delete or :nullify (#{reflection.options[:dependent].inspect})"
end
end
end