2014-03-30 61 views
1

這裏是一個職位的可能ID:兩條路線在Rails的同一資源(SEO目的)

tj1nbomj3m 

現在,讓我們說,我們要到那個帖子的頁面。好了,我們會做:

/posts/tj1nbomj3m 

但我們也是SEO頭腦。雖然做posts/:id會起作用,但我對SEO有點擔心。因此,我寧願做posts/:id/:title與從posts/:idposts/:id/:title重定向。

我知道如何在Laravel中做到這一點,但我不知道如何在Rails中做到這一點。有誰知道如何?

回答

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"