Class: FReCon::Model
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.controller ⇒ Object
29
30
31
|
# File 'lib/frecon/model.rb', line 29
def self.controller
(self.name.pluralize + "Controller").constantize
end
|
.descendants ⇒ Object
24
25
26
27
|
# File 'lib/frecon/model.rb', line 24
def self.descendants
ObjectSpace.each_object(Class).select { |possibleChild| possibleChild < self }
end
|
.inherited(child) ⇒ Object
14
15
16
17
18
19
20
21
22
|
# File 'lib/frecon/model.rb', line 14
def self.inherited(child)
child.class_eval do
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Attributes::Dynamic
validate :no_invalid_relations
end
end
|
Instance Method Details
#no_invalid_relations ⇒ Object
33
34
35
36
37
38
39
40
|
# File 'lib/frecon/model.rb', line 33
def no_invalid_relations
attributes.keys.select { |attribute| attribute.end_with?("_id") && attribute != "_id" }.each do |relation|
model = "FReCon::".concat(relation.gsub(/_id\Z/, "").capitalize).constantize
errors.add(relation.to_sym, "is invalid") if relation_invalid(model, send(relation))
end
end
|
#relation_invalid(class_constant, id) ⇒ Object
42
43
44
|
# File 'lib/frecon/model.rb', line 42
def relation_invalid(class_constant, id)
class_constant.find_by(id: id).nil?
end
|