Witam jestem młody na forum więc będę starał się opisywać problem dokładnie
mapuję w ten sposób
map.root :controller => ‘numbers’, :action => ‘show’, :id =>
“#{Number.find(:all, :order => ‘month DESC’).first.id}”
i jest wszystko oki znajduje mi najnowszy numer (zapewne da się to zrobić “ładniej” ale tak jak wspomniałem …zaczynam… )
i przekierowywuje do niego jednak w adresie strony jest pusto w sensie tylko / , a zależało by mi na otrzymaniu np: /numbers/4
gdzie 4 to id numeru, lub ( a to by było extra aby wyświetlił zamiast id datę w postaci rrrr-mm ) czyli np: /numbers/2009-09
Skoro zmapowałeś root, to czego tam nie zrobisz będzie miało w przeglądarce adres “/”.
Swoją drogą jeden z najpaskudniejszych wpisów w routes.rb jaki kiedykolwiek widziałem (nawet nie wiedziałem że tak można!).
Najlepiej zmapuj to na akcję (typu “last” w numbers_controller), która znajdzie ostatni numer i wykona redirect (wtedy będziesz miał już jak trzeba, tj. /numbers/id).
spojrzałem na tego posta jeszcze raz (nie mogę wyjść z podziwu ) i mam dla Ciebie jeszcze jedną lekturę: Active Record -jeśli pobierasz tylko jeden rekord, to nie pobieraj z bazy wszystkich, by potem korzystać tylko z pierwszego - od razu pobierz jeden za pomocą .find(:first)
szczerze mówiąc, to ja też byłem zdziwiony, że da się coś takiego zrobić
ciezkie ale jakies fajne nikt z nas by nawet nie wiedzial do tej pory ze tak mozna, a tu patrz. Trzeba byc poczatkujacym by miec tak świeże i odkrywcze spojrzenie
a jak zrobić żeby zamienić /numbers/id na /numbers/09-2009 tak żeby nie pobierał z url’a id numberu tylko posługiwał się formatem daty tego id 09-2009 kolumny month w tabeli numbers