无法使用actgable on作为标记对帖子进行排序

时间:2014-01-17 11:37:36

标签: ruby-on-rails routes rails-routing acts-as-taggable-on

我的posts_controller中有一个方法:

  def tag
    @posts = Post.all.tagged_with(params[:id]).page(params[:page]).per(10)
    render :action => 'index'
  end

我的路线档案:

  resources :posts do
    collection do
      get :top
      get :revelance
      get :tag
    end
  end

我的视图文件,我输出标签:<%=raw post.tag_list.map {|t| link_to t, tag_posts_path(t), class: "tags" }.join (' ') %>

问题是:当我点击标签时,我得到url:* / posts / tag.Sometag,页面为空。 猜猜我需要更改我的路线文件..但我不知道该怎么做

1 个答案:

答案 0 :(得分:0)

您实际上并不需要此标记方法,您可以直接在index操作中完成工作:

def index
  @posts = if params[:tag]
    Post.all.tagged_with(params[:tag]).page(params[:page]).per(10)
  else
    Post.all.page(params[:page]).per(10)
  end
end

然后你可以这样定义你的路线:

get 'tags/:tag', to: 'posts#index', as: :tag

在你看来适应它:

<%= raw post.tag_list.map {|t| link_to t, tag_path(t), class: "tags" }.join (' ') %>