1

我爲Rails 3.2.5創建了自己的博客,並試圖正確處理tagscategories。我想允許用戶點擊帶有標籤名稱的link_to,該標籤名稱將其帶到具有相同標籤的其他條目,並且URL爲'root.com/tag/selected-tag'。對於類別,我希望網址爲'root.com/category/selected-category'。我已經開始使用這個功能,並且正在使用acts_as_taggable_on進行標記,並且使用簡單的text input作爲類別(當我決定我想要什麼類別時,將變爲select input)。爲標籤和類別創建動作和路由

我該如何處理這個問題?我試過爲tagscategories創建一個控制器,每個控制器只有一個index動作。對於'tags#index'我:

@entries = Entry.order('created_at desc').tagged_with(params[:format]).paginate(:page => params[:page], :per_page => 10) 

併爲每個tag的鏈接,我有:

= link_to tag, tag_path(tag) 

出於某種原因,tag正在爲:format過去了,這就是爲什麼我有tagged_with(params[:format])

'categories#index'定義爲:

@entries = Entry.order('created_at desc').where(:category => params[:format]).paginate(:page => params[:page], :per_page => 10) 

category的鏈接是:

- entry.tag_list.each do |tag| 
    = link_to tag, tag_path(tag) 

由於tagscategory正在傳遞的:format的URL被顯示爲'root.com/tag.selected-tag''root.com/category.selected-category'

如何正確處理tagscategories以實現讓網址顯示爲'root.com/tag/selected-tag''root.com/category/selected-category'

回答

4

下面可能會做你想要什麼:

在你的路線: params[:tag]

match 'tag/:tag' => 'tags#index', :as => :tag

然後,當有人訪問example.com/tag/some-tag-here,則可以在您的控制器中,通過訪問標籤

你可以鏈接到你的路線做:

link_to tag, tag_path(:tag => tag)

一個類似的解決方案也應該適用於類別。

+0

非常感謝@cjhveal! – 2012-07-28 21:48:34