модуль ActiveRecord::AttributeMethods::Dirty
Открытые методы экземпляра
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 73 def attribute_before_last_save(attr_name) mutations_before_last_save.original_value(attr_name.to_s) end
Возвращает исходное значение атрибута до последней сохранения.
Этот метод полезен в обратных вызовах после сохранения, чтобы получить исходное значение атрибута до сохранения, которое вызвало выполнение обратных вызовов. Его можно вызвать как name_before_last_save вместо attribute_before_last_save("name").
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 115 def attribute_change_to_be_saved(attr_name) mutations_from_database.change_to_attribute(attr_name.to_s) end
Возвращает изменение атрибута, которое будет сохранено при следующем сохранении.
Этот метод полезен при валидации и обратных вызовах до сохранения, чтобы увидеть изменение атрибута, которое произойдет при сохранении записи. Его можно вызвать как name_change_to_be_saved вместо attribute_change_to_be_saved("name").
Если атрибут изменится, результат будет массивом, содержащим исходное значение и новое значение, которое будет сохранено.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 127 def attribute_in_database(attr_name) mutations_from_database.original_value(attr_name.to_s) end
Возвращает значение атрибута в базе данных, в отличие от значения в памяти, которое будет сохранено при следующем сохранении записи.
Этот метод полезен при валидации и обратных вызовах до сохранения, чтобы увидеть исходное значение атрибута до любых изменений, которые будут сохранены. Его можно вызвать как name_in_database вместо attribute_in_database("name").
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 154 def attributes_in_database mutations_from_database.changed_values end
Возвращает хеш атрибутов, которые изменятся при следующем сохранении записи.
Ключи хеша — имена атрибутов, а значения — исходные значения атрибутов в базе данных (в отличие от значений в памяти, которые будут сохранены).
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 144 def changed_attribute_names_to_save mutations_from_database.changed_attribute_names end
Возвращает массив имён атрибутов, которые изменятся при следующем сохранении записи.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 138 def changes_to_save mutations_from_database.changes end
Возвращает хеш, содержащий все изменения, которые будут сохранены при следующем сохранении.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 132 def has_changes_to_save? mutations_from_database.any_changes? end
Будет ли следующий вызов save иметь какие-либо изменения для сохранения?
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 30
def reload(*)
super.tap do
@mutations_before_last_save = nil
@mutations_from_database = nil
end
end reload запись и очищает изменённые атрибуты.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 63 def saved_change_to_attribute(attr_name) mutations_before_last_save.change_to_attribute(attr_name.to_s) end
Возвращает изменение атрибута во время последнего сохранения. Если атрибут был изменён, результат будет массивом, содержащим исходное значение и сохранённое значение.
Этот метод полезен в обратных вызовах после сохранения, чтобы увидеть изменения атрибута во время сохранения, которое вызвало выполнение обратных вызовов. Его можно вызвать как saved_change_to_name вместо saved_change_to_attribute("name").
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 51 def saved_change_to_attribute?(attr_name, **options) mutations_before_last_save.changed?(attr_name.to_s, options) end
Изменился ли этот атрибут при последнем сохранении?
Этот метод полезен в обратных вызовах после сохранения, чтобы определить, был ли атрибут изменён во время сохранения, которое вызвало выполнение обратных вызовов. Его можно вызвать как saved_change_to_name? вместо saved_change_to_attribute?("name").
Опции
from При передаче этот метод возвращает false, если исходное значение не равно заданному значению.
to При передаче этот метод возвращает false, если значение не было изменено на заданное значение.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 83 def saved_changes mutations_before_last_save.changes end
Возвращает хеш, содержащий все изменения, которые только что были сохранены.
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 78 def saved_changes? mutations_before_last_save.any_changes? end
Сохранил ли последний вызов save какие-либо изменения?
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 101 def will_save_change_to_attribute?(attr_name, **options) mutations_from_database.changed?(attr_name.to_s, options) end
Изменится ли этот атрибут при следующем сохранении?
Этот метод полезен при валидации и обратных вызовах до сохранения, чтобы определить, изменит ли следующий вызов save конкретный атрибут. Его можно вызвать как will_save_change_to_name? вместо will_save_change_to_attribute("name").
Опции
from При передаче этот метод возвращает false, если исходное значение не равно заданному значению.
to При передаче этот метод возвращает false, если значение будет изменено на заданное значение.
© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.