簡體   English   中英

這個“posts_path”變量在哪里定義?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM