如何在网址中显示没有/posts/
的博文?
http://www.anthonygalli.com/posts/i-walk-the-line
http://www.anthonygalli.com/posts/50-shades-of-galli
http://www.anthonygalli.com/posts/tips-for-regaining-momentum
缩短版本(问题目标):
http://www.anthonygalli.com/i-walk-the-line
http://www.anthonygalli.com/50-shades-of-galli
http://www.anthonygalli.com/tips-for-regaining-momentum
我有post
作为MVC。
的routes.rb
resources :posts
get 'about' => 'posts#about'
get 'feed' => 'posts#feed'
get 'subscribe' => 'posts#subscribe'
答案 0 :(得分:2)
将您的routes.rb
更改为:
resources :posts, path: '/' do
collection do
get 'about'
get 'feed'
get 'subscribe'
end
end
有关Rails路由检查的文档:http://guides.rubyonrails.org/routing.html
答案 1 :(得分:1)
您的路线应该更新为:
resources :posts
get 'about' => 'posts#about'
get 'feed' => 'posts#feed'
get 'subscribe' => 'posts#subscribe'
get ':id' => 'posts#show', :as => :post_by_slug
如果您要链接到as
- 更少的路径,那么/post/
选项对于链接到新路线非常重要:
<%= link_to post.title, post_by_slug_path(post) %>
P上。 S.我认为新路线需要在路线的最后列出,以便之前的路线可以优先。 (否则,尝试访问/about
会尝试加载一个名为about
而不是posts#about
操作的帖子的帖子。您应该尝试这一点,看看是否属实。)
答案 2 :(得分:0)
资源生成标准CRUD网址,因此您必须明确指定帖子路由。像这样的东西
get '/desired-url' => 'posts#index'