Spec-Zone.ru › Ruby on Rails 6.1

модуль ActiveRecord::AttributeMethods::Dirty

Включенные модули:
ActiveModel::Dirty

Открытые методы экземпляра

attribute_before_last_save(attr_name) Показать исходный код
# 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").

attribute_change_to_be_saved(attr_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").

Если атрибут изменится, результат будет массивом, содержащим исходное значение и новое значение, которое будет сохранено.

attribute_in_database(attr_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").

attributes_in_database() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 154
def attributes_in_database
  mutations_from_database.changed_values
end

Возвращает хеш атрибутов, которые изменятся при следующем сохранении записи.

Ключи хеша — имена атрибутов, а значения хеша — исходные значения атрибутов в базе данных (в отличие от значений в памяти, которые собираются сохранить).

changed_attribute_names_to_save() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 144
def changed_attribute_names_to_save
  mutations_from_database.changed_attribute_names
end

Возвращает массив имён атрибутов, которые изменятся при следующем сохранении записи.

changes_to_save() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 138
def changes_to_save
  mutations_from_database.changes
end

Возвращает хеш, содержащий все изменения, которые будут сохранены при следующем сохранении.

has_changes_to_save?() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 132
def has_changes_to_save?
  mutations_from_database.any_changes?
end

Будет ли следующий вызов save содержать какие-либо изменения для сохранения?

reload(*) Показать исходный код
# 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 запись и очищает изменённые атрибуты.

Вызывает метод суперкласса
saved_change_to_attribute(attr_name) Показать исходный код
# 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").

saved_change_to_attribute?(attr_name, **options) Показать исходный код
# 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, если значение не было изменено на переданное значение.

saved_changes() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 83
def saved_changes
  mutations_before_last_save.changes
end

Возвращает хеш, содержащий все изменения, которые были только что сохранены.

saved_changes?() Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 78
def saved_changes?
  mutations_before_last_save.any_changes?
end

Были ли изменения при последнем вызове save?

will_save_change_to_attribute?(attr_name, **options) Показать исходный код
# 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–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API