Sha256: 82a9bec5df3d722410d981bea94b703312228f8d4f0da573f0851b0e94b7dbc4
Contents?: true
Size: 1.08 KB
Versions: 3
Compression:
Stored size: 1.08 KB
Contents
module Assetable module Base extend ActiveSupport::Concern included do end module ClassMethods def assetable *args if args.present? args.each do |arg| has_one :"#{arg}_association", -> { where(name: arg) }, class_name: "AssetAttachment", as: :assetable has_one arg, through: :"#{arg}_association", source: :asset accepts_nested_attributes_for :"#{arg}_association", allow_destroy: true end end end # Galleries def galleryable *args # By default, let's include a gallery. unless args.include? :gallery has_one :gallery, as: :galleryable, dependent: :destroy accepts_nested_attributes_for :gallery end if args.present? args.each do |arg| has_one arg, -> { where(name: arg) }, class_name: "Gallery", as: :galleryable accepts_nested_attributes_for arg end end end end module InstanceMethods end end end ActiveRecord::Base.send :include, Assetable::Base
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
assetable-0.2.4 | lib/assetable/active_record/base.rb |
assetable-0.2.2 | lib/assetable/active_record/base.rb |
assetable-0.2.1 | lib/assetable/active_record/base.rb |