Class: ThroughHierarchy::Associations::Association
- Inherits:
-
Object
- Object
- ThroughHierarchy::Associations::Association
- Defined in:
- lib/through_hierarchy/associations/association.rb
Instance Method Summary collapse
- #create(member, attributes) ⇒ Object
- #find(instance) ⇒ Object
-
#initialize(name, model, members, options = {}) ⇒ Association
constructor
A new instance of Association.
- #join ⇒ Object
Constructor Details
#initialize(name, model, members, options = {}) ⇒ Association
Returns a new instance of Association.
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/through_hierarchy/associations/association.rb', line 4 def initialize(name, model, members, = {}) @name = name @model = model @members = members () @associated = Hierarchicals::Hierarchical.new(foreign_arel_table, model, members, as: @polymorphic_name) end |
Instance Method Details
#create(member, attributes) ⇒ Object
28 29 30 |
# File 'lib/through_hierarchy/associations/association.rb', line 28 def create(member, attributes) # NIY end |
#find(instance) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/through_hierarchy/associations/association.rb', line 15 def find(instance) results = get_matches(instance) results = results.create_with(associated_instance(instance).create_with) results = results.instance_exec(&@scope) if @scope.present? return results end |
#join ⇒ Object
22 23 24 25 26 |
# File 'lib/through_hierarchy/associations/association.rb', line 22 def join results = get_joins results = results.merge(foreign_class.instance_exec(&@scope)) if @scope.present? return results end |