if segment_ids.length > 0
way_segments = WaySegment.find_all_by_segment_id(segment_ids)
way_ids = way_segments.collect {|way_segment| way_segment.id }
- ways = Way.find(way_ids) # NB: doesn't pick up segments, tags from db until accessed via way.way_segments etc.
+ ways = Way.find(way_ids, :include => [:way_tags]) # NB: doesn't pick up segments, tags from db until accessed via way.way_segments etc.
# seg_ids = way_segments.collect {|way_segment| way_segment.segment_id }
end
- segments_to_fetch = list_of_way_segments.uniq - segment_ids
+ # - [0] in case some thing links to segment 0 which doesn't exist. Shouldn't actually ever happen but it does. FIXME: file a ticket for this
+ segments_to_fetch = (list_of_way_segments.uniq - segment_ids) - [0]
if segments_to_fetch.length > 0
segments += Segment.find(segments_to_fetch)