Вы можете сделать фотографии подресурсом для пользователя, чтобы у вас было users/joeschmoe/photos/12345
(конечно, здесь вашему контроллеру пользователей потребуется возможность принимать имя пользователя вместо идентификатора, что является еще одной проблемой маршрутизации, которую нужно решитьно не сложно)
resources :users do
resources :photos
end
Тогда ваш контроллер может позвонить
@photos = Photo.find_by_username(params[:id])
Хотя я думаю, что есть менее хакерские способы сделать это.
Вы также можете добавитьjoeschmoe
в качестве параметра строки запроса.
Или вы можете сделать имя пользователя необязательным параметром в маршруте, так что это будет что-то вроде
match "/photos(/:username)/:id" => "photos#show"
Или если вы хотите новый именованный маршрут:
match "/photos/:username/:id" => "photos#show_by_user", :as => :user_photo