rails路由到特定id

rap*_*tle 5 routes ruby-on-rails-3

我有一个页面控制器,在db中有两个记录; 'pages'和'contact'.每个页面记录的ID是标题.如何为每个页面编写特定路线?

我目前有一条全能的路线......

match '/:id' => 'pages#show'
Run Code Online (Sandbox Code Playgroud)

但我想为每个页面创建一条路线

Gab*_*ley 8

我可能不明白你的问题,因为我不知道你为什么要那样做;)

无论如何,说你有一个页面标题/ id"关于".这是你的路线可能是这样的:

match '/about' => 'pages#show', :defaults => { :id => 'about' }
Run Code Online (Sandbox Code Playgroud)

比照 http://guides.rubyonrails.org/routing.html#defining-defaults

注意:我不会把你正在使用的路线称为"catchall"; 这是一个非常正常的Rails路线.这就是我称之为catchall的东西:

match ':controller(/:action(/:id))'
Run Code Online (Sandbox Code Playgroud)

  • 明白了。也许您已经考虑过这一点,但为了不重复代码,我将采用您原来的路线,添加 `:as => :page` 并使用路径帮助器 `page_path(:id => 'about')`。 (2认同)