Routes dla konkretnych obiektów

Aplikacja posiada model Category. Dla kilku najpopularniejszych kategorii chciałbym posiadać urlowe helpery, dokładam sobie w routes.rb:

Category.all.each do |c| get "/ogloszenia/kategorie/:category" => "billboard#category" , :as => ("bb_category_" << c.name.parameterize[/^\w+/]).to_sym, :category => c.to_param end
wywołanie “rake routes” pokazuje między innymi:

         bb_category_uslugi GET    /ogloszenia/kategorie/:category(.:format)                       {:category=>"3-uslugi", :controller=>"billboard", :action=>"category"}

czyli wygląda na to, że wszystko gra. Problem zaczyna się gdy odpalam testy po umieszczeniu takiego “bb_category_uslugi_path” w templatach. Oczywiście wywala, że “undefined local variable or method bb_category_uslugi_path” co jest zupełnie zrozumiałe gdyż baza testowa nie posiada stworzonych obiektów Category.

  1. W jaki sposób najlepiej wypełnić bazę testową przed testami? Gdy w scenariuszu ogórkowym umieszczam tworzenie kategorii w background to efekt jest taki sam. Rozumiem, że routes.rb jest przetwarzany jeszcze wcześniej. Też dla kilku testów chciałbym aby tabela kategorii była pusta na początku.

  2. Czy są odpowiedniejsze sposoby na definiowanie takich specjalnych routes dla konkretnych obiektów? Alternatywą jest stworzenie ekstra helpera typu “category_path_by_name(‘uslugi’)”, ale wtedy każde wywołanie to dodatkowe zapytanie do bazy.

Ogólnie wszelkie best practices i wskazówki dla takiego przypadku mile widziane.