レールは初めてなので、これがどこかで議論されている場合は、私をリンクしてください:私は良い検索をしましたが、私が見つけたのは、このコメントの議論ではなく、link_toの使用方法を理解しようとしている人々だけでした:
link_to "Profile", profile_path(@profile)
# => <a href="/profiles/1">Profile</a>
in place of the older more verbose, non-resource-oriented
link_to "Profile", :controller => "profiles", :action => "show", :id => @profile
# => <a href="/profiles/show/1">Profile</a>
http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to
後者はより冗長であり、したがって望ましくないことがわかりますが、前者はお勧めするのは奇妙なことのようです。
たとえば、/ blah / addでアクションがあり、次のコマンドを使用してリンクしている場合:
link_to "Link", link_add_path
次に、mysite.com / link/addにリンクしています。これはハードコードされたURLです。
これがマップするルートを変更する場合は、コードベース内のlink_toのすべてのインスタンスを変更して、新しい絶対URLを指すようにする必要があります。これはおかしいようです。
ただし、次を使用してリンクすると、次のようになります。
link_to "Link", :controller => "thing", :action => "add"
次に、URLが動的に決定されます。パスを変更する必要がある場合は、config / routers.rbを編集するだけで、コードには触れません。これは、メンテナンスがはるかに少ないようです。
それよりも少し複雑であることに感謝します。blah_path変数は実際には静的ルートではなく、実際にはアプリケーションベースのURLのようないくつかのスマートが含まれており、存在しないURLにリンクすることはできませんが、わずかに冗長性の少ない構文を容易にします。
それで、どうしたの?
後者よりも前者のlink_to構文を選択する技術的な理由は何ですか?