url與path的區別


rails里面常見的二個路由自動生成有url,path兩種,區別在哪兒呢?實例驗證如下:

image

在瀏覽器中打開一個頁面,觀察兩個Edit,發現其在狀態欄顯示都是一樣的

image

果真一樣?查看網頁源代碼,會發現url生成的是絕對路徑,而path生成的則是相對路徑,rails里面的path用的較多,相對路徑的適應性會強一些.

<a href="http://192.168.1.107:3000/users/1/edit">Edit</a> 
<a href="/users/1/edit">Edit</a> |
<a href="/users">Back</a>
 
再比如路由文件(config/routes.rb)中如下定義:

SampleApp::Application.routes.draw do
  match '/contact', :to => 'pages#contact'
  match '/about', :to => 'pages#about'
  match '/help', :to => 'pages#help'
.
.
.
end

 

則在程序中可以這樣:

root_path => '/'
root_url => 'http://localhost:3000/'

about_path => '/about'
about_url => 'http://localhost:3000/about'

 

 如果你寫了一個不存在的路由,比如thanks_path,就會報錯,而如果你在路由文件中添加

match '/thanks', :to => 'pages#about'

則又可以正常的工作了,說明rails其實是按照_path之前的名稱在路由文件中查找對應的映射關系.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM