diff options
| author | Xinhui | 2017-04-13 16:03:33 +0200 |
|---|---|---|
| committer | Xinhui | 2017-04-13 16:03:38 +0200 |
| commit | dc692f9eb2cfe7181e561065c8fea2e4b19d1504 (patch) | |
| tree | aead5da3338dfc3c52c759b13232896bca082fb9 /app | |
| parent | 147cb5733741aff77b0cf191b18d56bc235a6e3b (diff) | |
| download | chouette-core-dc692f9eb2cfe7181e561065c8fea2e4b19d1504.tar.bz2 | |
Vehicle journeys clear time_tableas association when remove from state
Refs #3121
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index 27830490f..913fdcd73 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -92,10 +92,12 @@ module Chouette end def update_time_tables_from_state item - item['time_tables'].each do |tt| - unless self.time_tables.map(&:id).include?(tt['id']) - self.time_tables << Chouette::TimeTable.find(tt['id']) - end + state_tt_ids = item['time_tables'].map{|tt| tt['id']} + self.time_tables.map(&:id).each do |id| + self.time_tables.delete(self.time_tables.find(id)) unless state_tt_ids.include?(id) + end + state_tt_ids.each do |id| + self.time_tables << Chouette::TimeTable.find(id) unless self.time_tables.map(&:id).include?(id) end end |
