1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Remove deprecated code concerning non-attributes and *_will_change!

This commit is contained in:
Sean Griffin 2017-07-18 10:37:31 -04:00
parent 020abadf04
commit c0d8f58775
4 changed files with 7 additions and 24 deletions

View file

@ -209,17 +209,7 @@ module ActiveRecord
def attribute_will_change!(attr_name)
super
if self.class.has_attribute?(attr_name)
mutations_from_database.force_change(attr_name)
else
ActiveSupport::Deprecation.warn(<<-EOW.squish)
#{attr_name} is not an attribute known to Active Record.
This behavior is deprecated and will be removed in the next
version of Rails. If you'd like #{attr_name} to be managed
by Active Record, add `attribute :#{attr_name}` to your class.
EOW
mutations_from_database.deprecated_force_change(attr_name)
end
mutations_from_database.force_change(attr_name)
end
def _update_record(*)

View file

@ -5,7 +5,6 @@ module ActiveRecord
def initialize(attributes)
@attributes = attributes
@forced_changes = Set.new
@deprecated_forced_changes = Set.new
end
def changed_values
@ -33,7 +32,7 @@ module ActiveRecord
end
def any_changes?
attr_names.any? { |attr| changed?(attr) } || deprecated_forced_changes.any?
attr_names.any? { |attr| changed?(attr) }
end
def changed?(attr_name, from: OPTION_NOT_GIVEN, to: OPTION_NOT_GIVEN)
@ -62,15 +61,11 @@ module ActiveRecord
forced_changes << attr_name.to_s
end
def deprecated_force_change(attr_name)
deprecated_forced_changes << attr_name.to_s
end
# TODO Change this to private once we've dropped Ruby 2.2 support.
# Workaround for Ruby 2.2 "private attribute?" warning.
protected
attr_reader :attributes, :forced_changes, :deprecated_forced_changes
attr_reader :attributes, :forced_changes
private

View file

@ -299,11 +299,9 @@ class DirtyTest < ActiveRecord::TestCase
end
def test_virtual_attribute_will_change
assert_deprecated do
parrot = Parrot.create!(name: "Ruby")
parrot.send(:attribute_will_change!, :cancel_save_from_callback)
assert parrot.has_changes_to_save?
end
parrot = Parrot.create!(name: "Ruby")
parrot.send(:attribute_will_change!, :cancel_save_from_callback)
assert parrot.has_changes_to_save?
end
def test_association_assignment_changes_foreign_key

View file

@ -8,7 +8,7 @@ class Parrot < ActiveRecord::Base
validates_presence_of :name
attr_accessor :cancel_save_from_callback
attribute :cancel_save_from_callback
before_save :cancel_save_callback_method, if: :cancel_save_from_callback
def cancel_save_callback_method
throw(:abort)