Sha256: 99bc6f12d34c9ca3540d7d083bdf2594083aadf4cbdcd8c4f1c8067793855615
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
# frozen_string_literal: true module Generalis class Transaction < ActiveRecord::Base module Links # @param name [Symbol] # @param class_name [String] # @return [void] def has_one_linked(name, class_name: name.to_s.classify) # rubocop:disable Naming/PredicateName has_one :"#{name}_link", -> { where(name: name) }, class_name: 'Generalis::Link', dependent: :destroy, foreign_key: :transaction_id, inverse_of: :ledger_transaction has_one name, through: :"#{name}_link", source: :linkable, source_type: class_name end # @param name [Symbol] # @param class_name [String] # @return [void] def has_many_linked(name, class_name: name.to_s.singularize.classify) # rubocop:disable Naming/PredicateName has_many :"#{name}_links", -> { where(name: name) }, class_name: 'Generalis::Link', dependent: :destroy, foreign_key: :transaction_id, inverse_of: :ledger_transaction has_many name, through: :"#{name}_links", source: :linkable, source_type: class_name end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
generalis-0.1.0 | lib/generalis/transaction/links.rb |