Spec-Zone.ru › Ruby on Rails 6.0

модуль 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–2019 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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