Module: Vault::Associations
- Defined in:
- lib/vault/associations.rb
Defined Under Namespace
Classes: HasManyProxy
Instance Method Summary collapse
- #belongs_to(name, klass_name = name.to_s.classify) ⇒ Object
- #has_many(name, klass_name = name.to_s.classify, foreign_key = "#{self.to_s.underscore.singularize}_key") ⇒ Object
Instance Method Details
#belongs_to(name, klass_name = name.to_s.classify) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/vault/associations.rb', line 10 def belongs_to(name, klass_name=name.to_s.classify) foreign_key = "#{name}_key" property(foreign_key) define_method name do model = klass_name.is_a?(Class) ? klass_name : self.class.const_get(klass_name) model[send(foreign_key)] end define_method "#{name}=" do |object| send("#{foreign_key}=", object.key) end end |
#has_many(name, klass_name = name.to_s.classify, foreign_key = "#{self.to_s.underscore.singularize}_key") ⇒ Object
3 4 5 6 7 8 |
# File 'lib/vault/associations.rb', line 3 def has_many(name, klass_name=name.to_s.classify, foreign_key="#{self.to_s.underscore.singularize}_key") define_method name do model = klass_name.is_a?(Class) ? klass_name : self.class.const_get(klass_name) HasManyProxy.new(self, model, foreign_key, foreign_key => key) end end |