Test funkcjonalny i "No route matches"

Ja to odbierałem na zasadzie, że w /edit znajduje się formularz. Jeśli wywala błędy, powinno wywalać nad/w/pod formularzem, który masz w /edit a nie w głównym zasobie. Więc kiedy jesteś na /edit, wysyłasz dane, przekierowuje Cię pod główny zasób, wywala błędy… I wciąż masz formularz, pomimo tego, że wcześniej był na /edit, to coś jest nie tak. Chyba :slight_smile:

Nie, raczej wszystko jest w porządku, jeśli tylko zacznie się kombinować, że nie sam adres jest ważny, ale również kod HTTP. Dlatego strona z adresu /track/1 zwrócona z kodem 200 “na pewno” reprezentuje ten zasób. Jeżeli z tego samego adresu zwrócona jest strona z kodem 404 to, niezależnie od tego co jest na tej stronie wypisane, oznacza to, że zasobu “nie ma”. Zwrócona strona zawsze będzie wtedy tylko jakąś informacją wyjaśniającą problem - najpewniej zrozumiałą tylko dla człowieka znającego odpowiedni język.

Nie twierdzę, że konwersacja oparta na przekierowaniu na stronę /edit, która wyświetla błąd jest zła, ale wygląda to mniej więcej tak:

[b]PUT /tracks/3[/b] - zapisz dla mnie te dane. I jak poszło?
[b](303)[/b] - nie powiem. Sprawdź sobie na /tracks/3/edit i poproś jeszcze dodatkowo o 'err_code=1'
[b]GET /tracks/3/edit?err_code=1[/b] - daj mi to coś. Wiesz co to jest?
[b](200)[/b] - ok, masz. To? To jest to, o co prosiłeś.

a teraz to:

[b]PUT /tracks/3[/b] - zapisz dla mnie te dane. I jak poszło?
[b](422)[/b] - coś naknociłeś.

Okej, dzięki, teraz rozumiem :slight_smile: