Sha256: f0f6ad79a4807751fad9a3f16dce1daaa59a21c0e2b48f02bfad25058e2bb207
Contents?: true
Size: 1.1 KB
Versions: 2
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module WorksCited module Mixins # HasWorksCited Mixin module HasWorksCited extend ActiveSupport::Concern # rubocop:disable Naming/PredicateName def has_works_cited(_options = {}) extend ClassMethods include InstanceMethods has_many :works_cited_citations, as: :record, class_name: 'WorksCited::Citation' accepts_nested_attributes_for :works_cited_citations, reject_if: :all_blank, allow_destroy: true end # rubocop:enable Naming/PredicateName # Extended by has_works_cited mixin module ClassMethods end # Included by has_works_cited mixin module InstanceMethods def works_cited_citations_attributes=(raw_citations) array = [] raw_citations&.each do |_index, citation| destroy = citation.delete(:_destroy) if destroy == '1' Citation.find(citation[:id]).destroy if citation[:id] next end array << citation end super array end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
works_cited-0.1.16 | lib/works_cited/mixins/has_works_cited.rb |
works_cited-0.1.15 | lib/works_cited/mixins/has_works_cited.rb |