Sha256: 57d5679290a661f25b4f3da9ff6230ccbae8f5fcafdd2c7897eb003c74dd8902
Contents?: true
Size: 1.02 KB
Versions: 17
Compression:
Stored size: 1.02 KB
Contents
# a simple (manual) unsaved? flag and method. at least it automatically reverts after a save! module ActiveScaffold::UnsavedRecord # acts like a dirty? flag, manually thrown during update_record_from_params. def unsaved=(val) @unsaved = val ? true : false end # whether the unsaved? flag has been thrown def unsaved? @unsaved end # automatically unsets the unsaved flag def save(**) super.tap { self.unsaved = false } end def keeping_errors old_errors = errors.dup if errors.present? result = yield old_errors&.each do |e| if e.is_a?(String) || e.is_a?(Symbol) # Rails <6.1 errors API. old_errors[e].each { |msg| errors.add(e, msg) unless errors.added?(e, msg) } else # Rails >=6.1 errors API (https://code.lulalala.com/2020/0531-1013.html). errors.add(e.attribute, e.message) unless errors.added?(e.attribute, e.message) end end result && old_errors.blank? end end ActiveRecord::Base.class_eval { include ActiveScaffold::UnsavedRecord }
Version data entries
17 entries across 17 versions & 1 rubygems