Handle segments which do not exist correctly and indicate that the
[rails.git] / app / models / way.rb
index fe16e98c3257f86cbaa795cd8d3765ed4fd6f3ae..09d1dafa0adca5b320aaad2003b63c36b9d85e43 100644 (file)
@@ -61,7 +61,7 @@ class Way < ActiveRecord::Base
 
     user_display_name_cache = {} if user_display_name_cache.nil?
     
 
     user_display_name_cache = {} if user_display_name_cache.nil?
     
-    if user_display_name_cache and user_display_name_cache[self.user_id]
+    if user_display_name_cache and user_display_name_cache.key?(self.user_id)
       # use the cache if available
     elsif self.user.data_public?
       user_display_name_cache[self.user_id] = self.user.display_name
       # use the cache if available
     elsif self.user.data_public?
       user_display_name_cache[self.user_id] = self.user.display_name
@@ -165,7 +165,7 @@ class Way < ActiveRecord::Base
 
         WaySegment.delete_all(['id = ?', self.id])
 
 
         WaySegment.delete_all(['id = ?', self.id])
 
-        i = 0
+        i = 1
         segs.each do |n|
           seg = WaySegment.new
           seg.id = self.id
         segs.each do |n|
           seg = WaySegment.new
           seg.id = self.id
@@ -189,7 +189,7 @@ class Way < ActiveRecord::Base
   def preconditions_ok?
     return false if self.segs.empty?
     self.segs.each do |n|
   def preconditions_ok?
     return false if self.segs.empty?
     self.segs.each do |n|
-      segment = Segment.find(n)
+      segment = Segment.find(:first, :conditions => ["id = ?", n])
       unless segment and segment.visible and segment.preconditions_ok?
         return false
       end
       unless segment and segment.visible and segment.preconditions_ok?
         return false
       end