Я думаю, это просто прекрасно ... Маршрутизация в Rails достаточно гибкая (для учета подобных ситуаций).
Тем не менее, я бы изменил ваши маршруты, чтобы они были более похожими, чтобы правильно назвать помощников на вашем пути:
scope :admin, :as => :admin, :constraints => { :subdomain => "admin" } do
resources :photos
end
scope '/mystuff', :as => :mystuff, :constraints => { :subdomain => "www" } do
resources :photos
end
Что даст вам:
admin_photos GET /photos(.:format) {:subdomain=>"admin", :action=>"index", :controller=>"photos"}
POST /photos(.:format) {:subdomain=>"admin", :action=>"create", :controller=>"photos"}
new_admin_photo GET /photos/new(.:format) {:subdomain=>"admin", :action=>"new", :controller=>"photos"}
edit_admin_photo GET /photos/:id/edit(.:format) {:subdomain=>"admin", :action=>"edit", :controller=>"photos"}
admin_photo GET /photos/:id(.:format) {:subdomain=>"admin", :action=>"show", :controller=>"photos"}
PUT /photos/:id(.:format) {:subdomain=>"admin", :action=>"update", :controller=>"photos"}
DELETE /photos/:id(.:format) {:subdomain=>"admin", :action=>"destroy", :controller=>"photos"}
mystuff_photos GET /mystuff/photos(.:format) {:subdomain=>"www", :action=>"index", :controller=>"photos"}
POST /mystuff/photos(.:format) {:subdomain=>"www", :action=>"create", :controller=>"photos"}
new_mystuff_photo GET /mystuff/photos/new(.:format) {:subdomain=>"www", :action=>"new", :controller=>"photos"}
edit_mystuff_photo GET /mystuff/photos/:id/edit(.:format) {:subdomain=>"www", :action=>"edit", :controller=>"photos"}
mystuff_photo GET /mystuff/photos/:id(.:format) {:subdomain=>"www", :action=>"show", :controller=>"photos"}
PUT /mystuff/photos/:id(.:format) {:subdomain=>"www", :action=>"update", :controller=>"photos"}
DELETE /mystuff/photos/:id(.:format) {:subdomain=>"www", :action=>"destroy", :controller=>"photos"}