Module: Opium::Model::Relatable::ClassMethods
- Defined in:
- lib/opium/model/relatable.rb
Instance Method Summary collapse
- #belongs_to(relation_name, options = {}) ⇒ Object
- #has_and_belongs_to_many(relation_name, options = {}) ⇒ Object
- #has_many(relation_name, options = {}) ⇒ Object
- #has_one(relation_name, options = {}) ⇒ Object
- #relations ⇒ Object
Instance Method Details
#belongs_to(relation_name, options = {}) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/opium/model/relatable.rb', line 32 def belongs_to( relation_name, = {} ) ( :belongs_to, relation_name, ) field relation_name, type: Reference, default: ->( model ) do { metadata: relations[relation_name], context: model } end end |
#has_and_belongs_to_many(relation_name, options = {}) ⇒ Object
19 20 21 |
# File 'lib/opium/model/relatable.rb', line 19 def has_and_belongs_to_many( relation_name, = {} ) ( :has_and_belongs_to_many, relation_name, ) end |
#has_many(relation_name, options = {}) ⇒ Object
23 24 25 26 |
# File 'lib/opium/model/relatable.rb', line 23 def has_many( relation_name, = {} ) ( :has_many, relation_name, ) field relation_name, type: Relation, default: -> { relations[relation_name].target_class_name } end |
#has_one(relation_name, options = {}) ⇒ Object
28 29 30 |
# File 'lib/opium/model/relatable.rb', line 28 def has_one( relation_name, = {} ) ( :has_one, relation_name, ) end |
#relations ⇒ Object
15 16 17 |
# File 'lib/opium/model/relatable.rb', line 15 def relations @relations ||= {}.with_indifferent_access end |