Rel menyediakan rute bernama .
Routes helper bisa dipanggil menggunakan path atau url
mis. dari dokumen:
# and provide these named routes
root_url # => 'http://www.example.com/'
root_path # => '/'
terus terang saya belum pernah menggunakan *_url
helper, saya bisa membuat semuanya bekerja menggunakan *_path
.
Saya agak bingung apa tujuan dari dua pembantu yang berbeda ini?
bagaimana mereka berbeda satu sama lain?
beberapa contoh nyata dengan penjelasan kapan harus menggunakan apa yang bagus.
sumber
Saat Anda meletakkan link di situs Anda sendiri, bagian domain dari rute tersebut akan menjadi redundan, dan menambah ukuran halaman, jadi Anda cukup menggunakan bagian jalur URL dengan
*_path
helper. Di sisi lain, jika URL akan digunakan di luar situs Anda, misalnya email atau RSS feed, seluruh URL diperlukan, jadi gunakan*_url
helper.sumber
Seperti jawaban lain yang menjelaskan, Anda harus menggunakan
_url
tautan email, dll. Tetapi saya ingin menambahkan bahwa Anda juga harus menggunakan_url
dalam pengalihan, seperti yang dijelaskan di sini:https://www.ruby-forum.com/topic/101346#221052
dan di sini:
http://viget.com/extend/rails-named-routes-path-vs-url
Anda juga dapat melihat bagian yang relevan dari spesifikasi HTTP di sini:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
sumber
_path menyediakan jalur relatif.
_url menyediakan jalur absolut.
Kapan pun Anda mengirim URL dalam email, dll. Daripada itu, praktik terbaiknya adalah menggunakan _url daripada _path.
sumber