module Dsl::Relations

Public Instance Methods

relations(*params) click to toggle source

Allows to receive a relation as an input params. Relation can then be received either as :

- relation_id => The key to the corresponding relation
- relation    => An instance of the object

Params:

params

the list of relations to declare

Example :

relations(:entity, :user)
# File lib/dsl/relations.rb, line 28
def relations(*params)
  options = {}
  if params.last.is_a?(Hash)
    options = params.last
    params.pop
  end
  validates(*params, relation: true) unless options[:skip_validations]

  params.each do |param|
    relation_key = "#{param}_id".to_sym
    send(:attributes, param, relation_key)
    @@relation_keys[name] = (@@relation_keys[name] || []) + [param]
  end
end