以下是帖子的可能ID:
tj1nbomj3m
现在,让我们说我们想去那个帖子的页面。好吧,我们会这样做:
/posts/tj1nbomj3m
但我们也是SEO的头脑。尽管做posts/:id
会有效,但我对SEO有点担心。因此,我宁愿通过从posts/:id/:title
到posts/:id
的重定向来posts/:id/:title
。
我知道如何在Laravel中执行此操作,但我不知道如何在Rails中执行此操作。有谁知道怎么做?
答案 0 :(得分:3)
在 routes.rb
中resources :posts
get '/posts/:id/:title' => 'posts#show', as: 'post_by_title'
现在在您的控制器中
def show
@post = Post.find_by(id: params[:id])
if !params[:title]
redirect_to video_by_title_path(@post.id, @post.title)
end
end
最后,构建网址
post_path(@post)
#=> "/posts/post_id"
post_by_title_path(@post.id, @post.title)
#=> "/posts/post_id/post-title"