Spec-Zone.ru › Ruby on Rails 5.2

модуль 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)
end

Возвращает исходное значение атрибута до последней сохранения. Ведет себя аналогично attribute_was. Этот метод полезен в после-обработчиках для получения исходного значения атрибута до сохранения, которое только что произошло.

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

Псевдоним для attribute_change

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

Псевдоним для attribute_was

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

Псевдоним для changed_attributes

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

Псевдоним для changed

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

Псевдоним для changes

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

Псевдоним для changed?

reload(*) Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 30
def reload(*)
  super.tap do
    @previously_changed = ActiveSupport::HashWithIndifferentAccess.new
    @mutations_before_last_save = nil
    @attributes_changed_by_setter = ActiveSupport::HashWithIndifferentAccess.new
    @mutations_from_database = nil
  end
end

reload запись и очищает изменённые атрибуты.

Вызывает метод суперкласса
saved_change_to_attribute(attr_name) Показать исходный код
# File activerecord/lib/active_record/attribute_methods/dirty.rb, line 65
def saved_change_to_attribute(attr_name)
  mutations_before_last_save.change_to_attribute(attr_name)
end

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

Ведёт себя аналогично attribute_change. Этот метод полезен в после-обработчиках, чтобы увидеть изменение в атрибуте, которое только что произошло.

Этот метод можно вызвать как 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 52
def saved_change_to_attribute?(attr_name, **options)
  mutations_before_last_save.changed?(attr_name, **options)
end

Было ли изменено этот атрибут при последнем сохранении? Этот метод можно вызвать как saved_change_to_name? вместо saved_change_to_attribute?("name"). Ведёт себя аналогично attribute_changed?. Этот метод полезен в после-обработчиках для определения, изменил ли вызов save определённый атрибут.

Параметры

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 88
def will_save_change_to_attribute?(attr_name, **options)
  mutations_from_database.changed?(attr_name, **options)
end

Псевдоним для attribute_changed?

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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