nil objects that are not nil elsewhere in same scope

hi there

how can an object be nil in line 37 but not nil in lines 34 & 40???

Parameters: {“activity_id”=>“7”, “action”=>“show”, “id”=>“15”, “controller”=>“photos”}
User Columns (0.016000) SHOW FIELDS FROM users
User Load (0.000000) SELECT * FROM users WHERE (users.id = 1) LIMIT 1

Activity Columns (0.000000) SHOW FIELDS FROM activities
Activity Load (0.016000) SELECT * FROM activities WHERE (activities.id = 7)
Photo Columns (0.016000) SHOW FIELDS FROM photos
Photo Load (
0.000000) SELECT * FROM photos WHERE (photos.id = 15 AND (photos.activity_id = 7))
Rendering template within layouts/application
Rendering photos/show

ActionView::TemplateError (
You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.to_sym) on line #37 of app/views/photos/show.html.erb:
34: <%= link_to image_tag(@photo.public_filename(:thumb)) %>
35:
36:

37: <%= link_to “Download #{@photo.width} X #{@photo.height}”, download_photos_url(@photo, @activity) %>

38:
39:

40: <%= link_to ‘Edit’, activity_edit_photo_url(@activity, @photo) %> |

no,

I can do

<%= activity_photo_url(@activity, @photo)%>

in the line above the one that breaks and it works fine

I think my named route (download_photos_url) does not like taking parameters, but am not sure why?!??!!

<%= link_to “Download”, download_photos_url(@activity, @photo) %>

http://localhost:2000/activities/7/photos/15

I am trying to get something like

http://localhost:2000/activities/7/photos/download/15

this is my routes.rb

map.resources :activities do |activity|
activity.resources :photos, :collection => {:download => :post }

end

map.resources :photos, :collection => {:download => :post }

cheers

dion

jean,

thanks big time

works great

VIEW
<%= link_to “Download”, activity_download_photo_url(@activity) %>

ROUTES.RB
map.resources :activities do |activity|
activity.resources :photos, :member => {:download => :get }
end

map.resources :photos, :member => {:download => :get }

after looking at the server log, GET is obvious, but the strange thing is that I have had this working without nested resources using POST…i’ll have to check that app again…

also member vs collection was the trick…which makes total sense…sometimes you just can’t see the forest for the trees

once again, cheers heaps

you saved me a lot of troubles

dion