如何将example.com/post/1转换为example.com/blog/post/1

时间:2016-10-24 04:58:35

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个root用户博客     root 'posts#index'

最适用于example.com/example.com/posts

但我想要的是这样的:

example.com/blog/posts/1

我尝试创建博客Controller并添加

resources :blog do
resources :posts
end

但这是我的路线blog/:id/posts/:id

3 个答案:

答案 0 :(得分:1)

如果您没有提到<configuration> <suiteXmlFiles> <!-- TestNG suite XML files --> <suiteXmlFile>/path/to/xml/Suite1.xml</suiteXmlFile> <suiteXmlFile>/path/to/xml/Suite2.xml</suiteXmlFile> </suiteXmlFiles> <testSourceDirectory>src/main/java</testSourceDirectory> </configuration> post之间的关系,那么rails会让您自由地将路由声明为我们自己的路径。

因此,要将路线blog设为example.com/posts/1,只需在最后添加自定义路线。

example.com/blog/posts/1

这样做会超越之前的路线并使这条路线最终。

现在输入rake路线,它将为​​您提供最后一条路线,

get '/blog/posts/:id', to: :show, controller: 'posts'

现在您可以使用

进行访问

GET /blog/posts/:id(.:format) posts#show

Reference for rails routing

答案 1 :(得分:0)

只是为了扩展@Sravan的答案。如果您有多个以/ blog /开头的路线,您可能需要检查Rails guide on routing

您可以添加

的内容
scope '/blog' do
    resources :posts
    resources :users
    resources :images
end

将在/ blog /.

下创建相应的路线

答案 2 :(得分:0)

namespace :blog do
  resources :posts
  resources :users
  resources :images
end

具有命名空间的控制器将如下所示: Blog :: PostsController