118

Railsは名前付きルートを提供します。

ルートヘルパーは、パスまたはURLを使用して呼び出すことができます

例:ドキュメントから:

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

率直に言っ*_urlて、私はまだヘルパーを使用したことがなく、を使用して物事を機能させることができました*_path

私はこれらの2つの異なるヘルパーの目的が何であるか少し混乱しましたか?

それらは互いにどのように異なりますか?

素晴らしいものをいつ使用するかを説明したいくつかの実際の例。

4

4 に答える 4

167

_pathヘルパーは、サイトルート相対パスを提供します。ほとんどの場合、これを使用する必要があります。

_urlヘルパーは、プロトコルとサーバー名を含む絶対パスを提供します。サーバー上でアプリへのリンクを作成するときに、主にメールでこれらを使用していることがわかりました。これらは主に、外部で使用するためのリンクを提供するときに使用する必要があります。(メールリンク、RSS、およびYouTubeビデオの[共有]セクションの下にあるURLのコピーと貼り付けフィールドなどを考えてください。)

于 2012-08-13T18:16:33.237 に答える
14

独自のサイトにリンクを配置すると、ルートのドメイン部分が冗長になり、ページ サイズが大きくなるため、URL のパス部分だけを*_pathヘルパーで使用できます。一方、メールや RSS フィードなど、サイト外で URL を使用する場合は、URL 全体が必要になるため、*_urlヘルパーを使用します。

于 2012-08-13T18:14:11.927 に答える
2

_path は相対パスを提供します。

_url は絶対パスを提供します。

メールなどで URL を送信する場合は常に、_path の代わりに _url を使用することをお勧めします。

于 2014-11-13T11:41:25.503 に答える