我需要设置以下网址:
/article (article#index)
/articles/1234 ( article#show with id 1234)
/articles/new (article#new)
我可以使用以下方式定义:
resources :article do
???
end
答案 0 :(得分:1)
听起来你只是在学铁路。我建议生成一个article
脚手架。它会为你建立一条这样的路线:
resources :article
您将通过rails
自动为您设置RESTful路由GET /articles index display a list of all articles
GET /articles/new new return an HTML form for creating a new article
POST /articles create create a new article
GET /articles/:id show display a specific article
GET /articles/:id/edit edit return an HTML form for editing an article
PUT /articles/:id update update a specific article
DELETE /articles/:id destroy delete a specific article
然后,您可以深入了解这一点并了解rails如何做事。
这是官方rails routing guide。
答案 1 :(得分:1)
如果我们仔细查看您的问题,您似乎希望索引位于/article
而不是默认的Rails REST约定,即/articles
以这种方式对您的路线进行建模没有任何明显的意义,但如果这肯定是您想要做的,那么除了调用resources
之外,您还可以再添加一条路线
resources :articles
match '/article', :to => 'articles#index'
答案 2 :(得分:0)
如果您想要这些网址而不需要其他内容,则应将以下内容放在routes.rb
:
resources :article, :only => [:index, :show, :new]
如果你没有偶然发现the official Rails 3 routing guide,你一定要看看它!