[OSM-Photos] Non-Geocoded photos

John McKerrell john at mckerrell.net
Sat Nov 20 09:04:13 GMT 2010


Off the top of my head I would suggest that the "taken_at" field for the photo is blank. This field is taken from the exif headers but if you're using a processed image or perhaps for other reasons the time it was taken at might not be in there. I would probably change both the title and alt tags to:

<%= p.taken_at ? "Taken #{time_ago_in_words(p.taken_at)} ago" : "Uploaded #{time_ago_in_words(p.created_at)} ago" %>

This way it'll say "Taken <time> ago" if there's a valid entry or it will show the time it was uploaded otherwise.

John

On 20 Nov 2010, at 05:24, H.S.Rai wrote:

> On my local setup when I tried to upload Non-GeoCoded photo (to make
> it display on left hand side of main page). Everything worked fine.
> Uploaded, Pushed, Moderated.
> 
> But, when I clicked on OpenStreetView (to view main page), I got error
> (full below signature) of:
> 
> "no implicit conversion to float from nil"
> 
> What will be issue?
> 
> -- 
> H.S.Rai
> 
> ==================================================
> 
> TypeError in Main#index
> 
> Showing app/views/main/index.erb where line #6 raised:
> 
> no implicit conversion to float from nil
> 
> Extracted source (around line #6):
> 
> 3:   <ul class="photo_list">
> 4:     <% @unlocated.each do |p| %>
> 5:     <li>
> 6:       <a href="javascript:void(0)" title="Taken
> <%=time_ago_in_words(p.taken_at)%> ago">
> 7:         <img src="<%=p.url('small')%>" alt="Taken
> <%=time_ago_in_words(p.taken_at)%> ago" />
> 8:       </a>
> 9:     </li>
> 
> RAILS_ROOT: /home/hsrai/OSV/OpenStreetView
> Application Trace | Framework Trace | Full Trace
> 
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:286:in
> `minus_without_duration'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:286:in
> `minus_without_coercion'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:295:in
> `-'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:66:in
> `distance_of_time_in_words'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:116:in
> `time_ago_in_words'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:6:in
> `_run_erb_app47views47main47index46erb'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:4:in `each'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:4:in
> `_run_erb_app47views47main47index46erb'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in
> `send'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:306:in
> `with_template'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:30:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/template.rb:205:in
> `render_template'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:265:in `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:348:in
> `_render_with_layout'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:262:in `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1250:in
> `render_for_file'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:936:in
> `render_without_benchmark'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in
> `render'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1326:in
> `default_render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1332:in
> `perform_action_without_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:617:in
> `call_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:610:in
> `perform_action_without_benchmark'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in
> `perform_action_without_rescue'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in
> `perform_action_without_rescue'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/rescue.rb:160:in
> `perform_action_without_flash'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/flash.rb:151:in
> `perform_action'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in
> `send'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in
> `process_without_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:606:in
> `process'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:391:in
> `process'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:386:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/routing/route_set.rb:438:in
> `call'
> 
> /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
> /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:87:in
> `dispatch'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:121:in
> `_call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:130
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:114:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:108:in
> `call'
> /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
> /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
> script/server:3
> 
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:286:in
> `minus_without_duration'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:286:in
> `minus_without_coercion'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/time/calculations.rb:295:in
> `-'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:66:in
> `distance_of_time_in_words'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/helpers/date_helper.rb:116:in
> `time_ago_in_words'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:6:in
> `_run_erb_app47views47main47index46erb'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:4:in `each'
> /home/hsrai/OSV/OpenStreetView/app/views/main/index.erb:4:in
> `_run_erb_app47views47main47index46erb'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in
> `send'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:34:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:306:in
> `with_template'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/renderable.rb:30:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/template.rb:205:in
> `render_template'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:265:in `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:348:in
> `_render_with_layout'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_view/base.rb:262:in `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1250:in
> `render_for_file'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:936:in
> `render_without_benchmark'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in
> `render'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:51:in
> `render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1326:in
> `default_render'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:1332:in
> `perform_action_without_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:617:in
> `call_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:610:in
> `perform_action_without_benchmark'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in
> `perform_action_without_rescue'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
> /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/core_ext/benchmark.rb:17:in
> `ms'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/benchmarking.rb:68:in
> `perform_action_without_rescue'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/rescue.rb:160:in
> `perform_action_without_flash'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/flash.rb:151:in
> `perform_action'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in
> `send'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:532:in
> `process_without_filters'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/filters.rb:606:in
> `process'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:391:in
> `process'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/base.rb:386:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/routing/route_set.rb:438:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:87:in
> `dispatch'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:121:in
> `_call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:130
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:29:in
> `call'
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:29:in
> `call'
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
> `cache'
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:9:in
> `cache'
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/query_cache.rb:28:in
> `call'
> /var/lib/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/string_coercion.rb:25:in
> `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/head.rb:9:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/params_parser.rb:15:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/session/cookie_store.rb:99:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/failsafe.rb:26:in
> `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/lock.rb:11:in `synchronize'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/lock.rb:11:in `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:114:in
> `call'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/reloader.rb:34:in
> `run'
> /var/lib/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:108:in
> `call'
> /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/rack/static.rb:31:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/urlmap.rb:47:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/urlmap.rb:41:in `each'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/urlmap.rb:41:in `call'
> /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/rack/log_tailer.rb:17:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/chunked.rb:15:in `call'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/mongrel.rb:67:in `process'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
> /var/lib/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
> /var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/mongrel.rb:38:in `run'
> /var/lib/gems/1.8/gems/rails-2.3.8/lib/commands/server.rb:111
> /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
> /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
> script/server:3
> 
> Request
> 
> Parameters:
> 
> None
> 
> Show session dump
> 
> ---
> 
> Response
> 
> Headers:
> 
> {"Content-Type"=>"",
> "Cache-Control"=>"no-cache"}
> 
> _______________________________________________
> Photos mailing list
> Photos at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/photos




More information about the Photos mailing list