Ruby on Rails 5.2 - ActiveRecord::AttributeMethods::Dirty

मॉड्यूल ActiveRecord :: विशेषता मेथोड्स :: गंदा




ruby

मॉड्यूल ActiveRecord :: विशेषता मेथोड्स :: गंदा

शामिल मॉड्यूल:
ActiveModel::Dirty

सार्वजनिक प्रवृत्ति के तरीके

विशेषताएँ_ 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 । कॉलबैक के बाद यह विधि उपयोगी है कि सेव के पहले एक विशेषता का मूल मूल्य प्राप्त करने के लिए

एट्रिब्यूट_क्रॉस_टो_बे_सैव (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 लिए उपनाम

विशेषता_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

विशेषता_वाह के लिए उपनाम

विशेषताएँ_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 लिए उपनाम

परिवर्तित_अध्याय_नाम_तो_सेवे () स्रोत दिखाएं
# 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 लिए उपनाम

# 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? लिए उपनाम changed?

पुनः लोड (*) दिखाएँ स्रोत
# 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 करें और परिवर्तित विशेषताओं को साफ़ करें।

सुपरक्लास विधि कहता है
save_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_attribute("name") बजाय saved_change_to_name रूप में लागू किया जा सकता है

saved_change_to_attribute? (attr_name, ** विकल्प) स्रोत दिखाएं
# 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_name? saved_change_to_attribute?("name") बजाय saved_change_to_attribute?("name") । विशेषता_शंख के समान व्यवहार करता attribute_changed? । कॉलबैक के बाद यह विधि उपयोगी है यह निर्धारित करने के लिए कि कॉल को सहेजने के लिए एक निश्चित विशेषता को बदल दिया गया है।

विकल्प

जब पास किया जाता है, तो यह विधि गलत हो जाएगी जब तक कि मूल मूल्य दिए गए विकल्प के बराबर न हो

जब पास किया जाता है, तो यह विधि गलत हो जाएगी जब तक कि मूल्य को दिए गए मूल्य में नहीं बदला जाता

# 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 लिए अंतिम कॉल में कोई परिवर्तन करने के लिए है?

will_save_change_to_attribute? (attr_name, ** विकल्प) स्रोत दिखाएं
# 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? लिए उपनाम