Jeśli rekord nie istnieje pojawia się błąd gdy próbuje pobrać @costam.title w jakiejs metodzie, chciałbym żeby nie dochodziło do tego momentu tylko zwracało wczesniej 404, ale find_by nie zwraca wyjatku w przeciwienstwie do find, jak to inaczej elegancko osiagnac bez sprawdzania wszedzie unless @costam.nil?
to czy idzie to przez railsy czy tylko przez serwer, to domyślam się zależy od ustawień samego serwera ?[/quote]
Chwila! Dlaczego chcesz robić redirect i status 404? To nie ma sensu. Redirecty to są statusy z grupy 300.
Zwracając kod 404 możesz spokojnie wyrenderować całą piękną stroną ze wszystkimi menusami i całą resztą bajerów.
Ja przy niezalogowanym userze zwracam stronę logowania z odpowiednią formatką, ale z kodem 403 Forbidden. URL zostaje ten sam, nie ma problemu z redirectem. Jeśli zwrócisz przekierowanie w razie błędu, wtedy np. javascripty (AJAXy) podążą za przekierowaniem i zamiast oczekiwanego XMLa zwrócą Ci stronę z opisem błędu.
Zobacz jak są zwracane strony edycji przy błędzie zapisu: render :action => ‘edit’, :status => 422
UPDATE: ok, nie wiem czy to rzeczywiście tak jest w nowych railsach, bo ja ciągle siedzę w jedynce, ale tyle tam nazmieniałem, że już nie wiem co było czyim pomysłem.