Ich hatte die gleiche Frage und ich schrieb a small post about this in my blog
Der Grund hier zusammengefasst (Ich fand diese in einem Forum):
* _path für Ansichten sind, weil ahrefs implizit verknüpft sind die aktuelle URL Es wäre also eine Verschwendung von Bytes, es immer und immer wieder zu wiederholen. Im Controller wird jedoch * _url für redirect_to benötigt, da die HTTP-Spezifikation vorschreibt, dass der Location: -Header in 3xx-Weiterleitungen eine vollständige URL ist.
Here is another explanation, die sagt, es hängt davon ab, ob wir brauchen eine absolute URI verwenden, wenn auf eine SSL-Site von einer nicht-SSL-Site verknüpft und umgekehrt.
Was ich bisher gelesen habe, deutet nicht darauf hin, dass einer von ihnen sicherer ist als der andere. Es kommt wirklich darauf an, was die "richtige" Verwendung ist.
Vielen Dank. Fand es nützlich. Also in den Controllern verwenden wir "_url", während wir in den Ansichten "_path" verwenden können, obwohl "_url" auch dort noch verwendet werden kann. – MohamedSanaulla
Sie müssen * _url nicht für Controller verwenden, der Pfad funktioniert genauso gut. Sie sollten '_url' nur verwenden, wenn Sie die Route zu externen Quellen anzeigen. –
Um noch etwas zu verdeutlichen: Die '_path'-Ausgabe funktioniert genauso gut für den' Location'-Header in einer Redirect. Der Browser wird dies als eine Umleitung von relativ zu Root interpretieren. –