[英]Where is this “posts_path” variable defined?
我正在關注Rails 這個教程 (看起來不錯)。 我跑完之后
ruby script/generate scaffold Post
然后此鏈接在erb文件之一中工作:
<%= link_to "My Blog", posts_path %>
為什么? 我在整個應用程序中查找了“posts_path”,但無處可尋。 另一方面,這個
<%= link_to "My Blog", home_path %>
不工作,並且它也是一個控制器。
posts_path
在哪里定義?
posts_path
是一個命名路由,您可以從script/generate scaffold
添加的路徑中免費獲得。 請參閱routes.rb
您應該看到如下內容:
map.resources :posts
有關您免費獲得的其他命名路由的信息,請參閱API文檔 。
你也可以運行rake routes
,看看你所有的routes.rb
給你的東西。
如果你想要一個名為route的home_path,你可以在routes.rb中添加這樣的routes.rb
:
map.home '/home', :controller => "home", :action => "index"
我相信“posts_path”是由Rails在運行時動態創建的。 查看您的routes.rb文件 - Home可能與Posts的定義方式不同。 它與您的控制器無關,它取決於路徑定義。
map.root :controller => "home"
是寫入主目錄路徑的一種較短方式。 這將使用/有家,而不是/ home。 如果你仍然想使用/ home(和home_path), map.home 'home', :controller => "home"
也會做同樣的事情。
Mike Gunderloy撰寫了一篇很棒的指南,介紹了有關路由的所有知識。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.