Я создаю дискуссионный форум. Вместо того, чтобы иметь вложенные категории структуры форума, я хочу, чтобы в каждой теме обсуждения были «теги». Я предполагаю, что это то же самое, что и структура 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
Есть предложения?