簡體   English   中英

Rails路由 - 以root身份顯示操作

[英]Rails routes - show action as root

我正在尋找一個我的控制器的顯示動作根。 我可以輕松地做到這一點:

map.root :controller => 'articles', :action => 'index'

當我去localhost:3000 /它列出所有的文章 - 這太棒了! 但是,我想要實現的是這樣的URL

localhost:3000/1

要顯示ID為1的文章。更改路徑,以下是我認為我必須做的事情:

map.root :controller => 'articles', :action => 'show'

但它似乎沒有用。 相反 - 它尋找一個名為1的控制器 - 它不存在。

我該怎么做呢?

謝謝!

routes.rb試試這個

map.connect ':id', :controller => 'articles', :action => 'show'

你需要確保這是一個低優先級的路由,因為它是多么通用。 即,將它放在routes.rb文件的底部但在此部分之上(如果您尚未刪除它):

# low-priorty article show route
map.connect ':id', :controller => 'articles', :action => 'show'

# Install the default routes as the lowest priority.
# Note: These default routes make all actions in every controller accessible via GET requests. You should
# consider removing or commenting them out if you're using named routes and resources.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

根路由只定義一條路由。 不是幾個。 您可以定義另一條路線

map.connect '/:id', :controller => 'articles', :action => 'show'

如果你想要這種風格的路線,也許資源( http://api.rubyonrails.org/classes/ActionController/Resources.html#M000522 )非常適合你。

在Rails 3中,路由中沒有可用的映射方法。 而是使用這樣的東西:

match ':id', :controller => 'articles', :action => 'show'

並記得把它放在應該優先的路線下面。

用這個

resource :articles, :path => '/'

有了這個,你的所有文章將直接在root下

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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