[ruby-on-rails] 명명 된 경로 _path 대 _url

Rails는 명명 된 경로를 제공합니다 .

경로 도우미는 경로 또는 URL을 사용하여 호출 할 수 있습니다.

예 : 문서에서 :

# and provide these named routes
root_url   # => 'http://www.example.com/'
root_path  # => '/'

솔직히 말해서 *_url아직 헬퍼를 사용 해본 적이 없어요 *_path.

이 두 도우미의 목적이 무엇인지 약간 혼란 스러웠습니다.

서로 어떻게 다른가요?

무엇이 좋을지 언제 사용하는지에 대한 설명이있는 실제 예.



답변

_path도우미는 사이트 루트 상대 경로를 제공합니다. 대부분의 경우 이것을 사용해야합니다.

_url도우미는 프로토콜 및 서버 이름을 포함한 절대 경로를 제공합니다. 나는 주로 서버에서 앱에 대한 링크를 만들 때 이메일에서 이것을 사용한다는 것을 발견했습니다. 주로 외부 사용을위한 링크를 제공 할 때 사용해야합니다. (이메일 링크, RSS 및 YouTube 동영상의 “공유”섹션 아래에있는 URL 복사 및 붙여 넣기 등을 생각해보십시오.)


답변

자신의 사이트에 링크를 넣으면 경로의 도메인 부분이 중복되고 페이지 크기가 추가되므로 *_path도우미 와 함께 URL의 경로 부분을 사용할 수 있습니다 . 반면에 URL이 이메일이나 RSS 피드와 같이 사이트 외부에서 사용되는 경우 전체 URL이 필요하므로 *_url도우미를 사용하십시오 .


답변

다른 답변에서 설명했듯이 _url이메일 링크 등에서 사용해야합니다 . 그러나 _url여기에 설명 된대로 리디렉션 에서도 사용해야 함을 추가하고 싶습니다 .

https://www.ruby-forum.com/topic/101346#221052

그리고 여기:

http://viget.com/extend/rails-named-routes-path-vs-url

여기에서 HTTP 사양의 관련 섹션을 살펴볼 수도 있습니다.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30


답변

_path는 상대 경로를 제공합니다.

_url은 절대 경로를 제공합니다.

이메일 등으로 URL을 보낼 때마다 _path 대신 _url을 사용하는 것이 가장 좋습니다.


답변