Url vs. path

Witam

Jak jest różnica pomiędzy:

department_employees_url(department.id)
a
department_employees_path(department.id)

?

Wynik dostaję taki sam.
Show

Pozdrawiam

Nie powinieneś dostawać tego samego wyniku.
Różnica jest taka, że metoda _url zwraca całego URL-a, wraz z protokołem, hostem i ewentualnym niestandardowym portem (czyli w Twoim przypadku powinna zwrócić http://host.com/departments/1/employees), metoda _path zwraca jedynie relatywną ścieżkę do zasobu, zaczynając od ‘/’

Różnica jest taka, że za pierwszym razem dostaniesz (jeśli odpalasz aplikacje na localhoście):
http://localhost:3000/departments/1/employees
a za drugim tylko
/departments/1/employees

więcej poczytać o tym możesz np. tutaj http://www.theagiledeveloper.com/commentaries/42

Dzięki, zgadza się. Nie zauważyłem.

Pozdrawiam

Wszystko jasne, ale mam jedno dodatkowe pytanie do tego tematu: Czy istnieje jakaś reguła kiedy należy użyć _url zamiast _path? W sensie wydajności lub bezpieczeństwa?

Zgodnie ze specyfikacją protokołu http 1.1 powinno używać się pełnego url’a jeśli się dokonuje przekierowania - czyli w railsach korzystając z metody redirect_to powinno się podać pełny, url ale jeszcze nie widziałem przeglądarki która nie obsługiwałaby przekierowania względnego.
W pozostałych przypadkach - jeśli user ‘normalnie klika’ na odnośniki lepiej jest używać względnych url’i - są krótsze, i bardziej elastyczne: przeglądarka sama uzupełnia początek url zachowując przy tym adres hosta i protokół - jest to moim zdaniem także bardziej DRY.

pozdro