Вы пробовали это?
%w(a).each do |attr|
resources :b, :name_prefix => "#{attr}_", :path_prefix => "/#{attr.pluralize}/:#{attr}_id"
end
resources :a do
resources :t do
resources :p
resources :m, :controller => :m
end
end
РЕДАКТИРОВАТЬ: согласно комментарию
map.resources :q, :name_prefix => 'all_', :collection => { :search => :get }
можно записать как
resources :q, :name_prefix => 'all_' do
collection do
get :search
end
end
Что-то не так в вашем вставленном коде с отступом и дополнительным концом?