Sha256: 4ae33ec129cbae2e3eec4a50dd6c7c8fd4e0a106e9ff03673147d9dc3f27bb87
Contents?: true
Size: 923 Bytes
Versions: 1
Compression:
Stored size: 923 Bytes
Contents
# frozen_string_literal: true # For Rails 4.2 only. module Gutentag::ActiveRecord::InstanceMethods # The reason we overwrite the stored value is because new tags may be added to # the instance directly (e.g. article.tags << tag), which invokes the save # callbacks, but the old tag_names value is stored but not updated. def reset_tag_names # Update the underlying value rather than going through the setter, to # ensure this update doesn't get marked as a 'change'. self.tag_names = nil end def tag_names # If the underlying value is nil, we've not requested this from the # database yet. if read_attribute("tag_names") { nil }.nil? self.tag_names = tags.pluck(:name) end # Use ActiveRecord's underlying implementation with change tracking. super end private def persist_tags Gutentag::Persistence.new(Gutentag::ChangeState.new(self)).persist end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gutentag-2.2.1 | lib/gutentag/active_record/instance_methods_4_2.rb |