diff --git a/models/concerns/expand_data.rb b/models/concerns/expand_data.rb index 5183ed1b4..d2be0b079 100644 --- a/models/concerns/expand_data.rb +++ b/models/concerns/expand_data.rb @@ -50,6 +50,9 @@ def add_relation_references relation.linked_services.each{ |service| service.relations << relation } + relation.linked_vehicles.each{ |vehicle| + vehicle.relations << relation + } } end diff --git a/models/relation.rb b/models/relation.rb index 4958bb1df..fa0c2fb0e 100644 --- a/models/relation.rb +++ b/models/relation.rb @@ -24,6 +24,7 @@ class Relation < Base field :linked_ids, default: [] has_many :linked_services, class_name: 'Models::Service' field :linked_vehicle_ids, default: [] + has_many :linked_vehicles, class_name: 'Models::Vehicle' field :periodicity, default: 1 # ActiveHash doesn't validate the validator of the associated objects diff --git a/models/vehicle.rb b/models/vehicle.rb index ed03c1db5..a4fe7c9a7 100644 --- a/models/vehicle.rb +++ b/models/vehicle.rb @@ -106,6 +106,7 @@ class Vehicle < Base has_many :capacities, class_name: 'Models::Capacity' # include ValidateTimewindows # <- This doesn't work has_many :rests, class_name: 'Models::Rest' + has_many :relations, class_name: 'Models::Relation' def self.create(hash) if hash[:sequence_timewindows]&.size&.positive? && hash[:unavailable_days]&.size&.positive? # X&.size&.positive? is not the same as !X&.empty?