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:
parent
020abadf04
commit
c0d8f58775
4 changed files with 7 additions and 24 deletions
|
@ -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(*)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue