2012-09-04 62 views
0

我有網址類似http://example.com/posts/?tag=2如何讓美麗的網址

routes.rb

resources :posts do 
    get 'tag', :on => :collection 
end 

我需要一個像http://example.com/posts/tag/linux

我的表的鏈接是:

posts(id,title) 
tags(id,name) 
taggings(id, post_id, tag_id) 
+0

這裏有幾個選項:https://gist.github.com/1209732 – Brian

回答

2

你可以這樣做某事。像

resources :posts do 
    get 'tag/:name', on: :collection 
end 

在你控制器,你可以找到名字的標籤在你的網址參數,並得到與此標籤的所有帖子。

Tag.where(name: params[:name]).posts 

或者你實現你的Post模型就像一個find_by_tag(tag)函數,這是否給你,讓你只需要調用

Post.find_by_tag(params[:name]) 

在controlllers行動什麼是更好的可讀性。