Stackoverflow-подобная обработка фильтров тегов для обсуждения / форума - PullRequest
0 голосов
/ 26 февраля 2012

Я создаю дискуссионный форум. Вместо того, чтобы иметь вложенные категории структуры форума, я хочу, чтобы в каждой теме обсуждения были «теги». Я предполагаю, что это то же самое, что и структура Stackoverflow, где вы можете просматривать вопросы по тегам, а затем дополнительно фильтровать вопросы, добавляя дополнительные теги.

Например: https://stackoverflow.com/questions/tagged/ruby-on-rails

Может быть дополнительно отфильтровано с помощью: https://stackoverflow.com/questions/tagged/ruby-on-rails+ruby

И так далее ...

Мой вопрос, как это сделать в ROR. У меня есть модель Forum и ForumTag, связанная с отношением HABTM.

Мои маршруты:

resources :forums do    
  resources :forum_posts, :only => [:new, :edit, :create, :destroy]    
  match 'tagged/:name' => 'forums#tag', :as => 'forums_by_tag', :on => :collection    
end  

В моем forums_controller #tag:

@forums = Forum.where(:forum_tags => {:name => params[:name]}).includes(:forum_tags).all

На этом этапе я застреваю, так как не знаю, как ввести несколько имен тегов. Кроме того, я не знаю, как: а) получить доступ ко всем тегам forum_tags, существующим во всех @forums и б), чтобы затем создать ссылки, которые принимают текущий путь, и добавить к нему «+ new_tag_name».

(a) @tags = @forums.forum_tags #doesn't work

(b) <%= link_to tagname, forums_by_tag_forum_path(params[:name]+'+'+tagname) %> #doesn't look right

Есть предложения?

1 Ответ

1 голос
/ 26 февраля 2012

Вам стоит попробовать этот плагин, он имеет все необходимое и работает очень плавно:

https://github.com/mbleigh/acts-as-taggable-on

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...