【发布时间】:2012-07-28 21:18:14
【问题描述】:
我正在使用 Rails 3.2.5 为自己创建一个博客,并尝试正确处理 tags 和 categories。我想允许用户单击带有标签名称的link_to,将它们带到具有相同标签的其他条目,并且URL 为'root.com/tag/selected-tag'。对于类别,我希望 URL 为 'root.com/category/selected-category'。我已经开始这样做了,我使用acts_as_taggable_on 进行标记和一个简单的text input 用于类别(当我决定我想要什么类别时将变成select input)。
我将如何处理这个问题?我尝试为tags 和categories 创建一个控制器,每个控制器都只有一个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)
由于tags 和category 作为:format 传递,因此URL 显示为'root.com/tag.selected-tag' 和'root.com/category.selected-category'。
我将如何正确处理 tags 和 categories 以使 URL 显示为 'root.com/tag/selected-tag' 和 'root.com/category/selected-category'?
【问题讨论】:
标签: ruby-on-rails-3 routes categories acts-as-taggable-on controller-actions