Я хочу, чтобы пользователь мог следить за темой (тегом), созданной с помощью act_as_taggable_on в Rails 4.

У меня есть модель вопроса, очень похожая на stackoverflow.

Пользователь может добавить вопрос. В форме вопроса есть :название, :темы, :место, :описание

У каждой темы есть собственная страница показа, на которой есть поток вопросов, содержащих тему.

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

Я не уверен, что в act_as_taggable есть встроенная функция для этого? Я использую act_as_follower, чтобы пользователи могли подписываться друг на друга, и все работает нормально!

Я собирался попробовать использовать act_as_follower в темах, но понятия не имею, как это сделать, поскольку нет модели «темы», поскольку она создается с помощью act_as_taggable_on.

topic_controller.rb для страницы показа

class TopicController < ApplicationController
  def index
    @questions = Question.tagged_with(params[:topic])

      respond_to do |format|
        format.html # index.html.erb
        format.json { render json: @questions }
      end
  end
end

Любые идеи и код очень помогут,

Спасибо!


person Lewis Frost    schedule 15.01.2014    source источник


Ответы (1)


Вы можете создать модель Topic, которая наследуется от ActsAsTaggableOn::Tag, и добавить в эту модель act_as_followable.

# app/models/topic.rb
class Topic < ActsAsTaggableOn::Tag
  acts_as_followable
end

Затем вы можете использовать тему в качестве своего тега:

# app/models/post.rb
class Post < ActiveRecord::Base
  acts_as_taggable_on :topics
end
person Anand    schedule 18.01.2016