0

ガイドライン モデルとコメント モデルがあり、アクティビティ フィードで両方を追跡できるようにしようとしています。ガイドラインは機能していますが、コメントは機能していません。

主な問題は次の 2 つです。

activities_controller.rb の 2 番目の trackable_type として「コメント」を追加する方法がわかりません。また、comment/_create.rb でビューをソートする方法もわかりません。x ガイドラインにコメントが追加されたと言う必要があります (およびリンクそのガイドラインショーページ)。

ガイドライン.rb

include PublicActivity::Model
  tracked owner: ->(controller, model){controller && controller.current_user}

  attr_accessible :content, :hospital, :title, :user_id, :guideline_id, :specialty, :updated_by, :current_user, :subtitle, :slug, :activities, :comment

 belongs_to :user
 has_many :favourite_guidelines
 has_many :comments, :dependent => :destroy

コメント.rb

include PublicActivity::Model
  tracked owner: ->(controller, model){controller && controller.current_user}

  belongs_to :guideline
  belongs_to :commenter, class_name: 'User'

activities_controller.rb

def index
        @activities = PublicActivity::Activity
        .order("created_at desc")
        .where(trackable_type: 'Guideline' 'Comment')

ビュー/パブリックアクティビティ/コメント/_create.html.erb

added a comment 

<% if activity.trackable %>
    to the guideline <%= link_to activity.trackable.body, activity.trackable %>
<% else %>
    which can no longer be viewed
<% end %>

ビュー/public_activity/guideline/_create.html.erb

added a guideline 

<% if activity.trackable %>
    titled <%= link_to activity.trackable.title, activity.trackable %>
<% else %>
    which can no longer be viewed
<% end %>

私のroutes.rbは

Guidelines::Application.routes.draw do

  get "activities/index"

  # get "user/index"

  ActiveAdmin.routes(self)

  devise_for :admin_user, ActiveAdmin::Devise.config


  get "guidelines/topic"
  get "guidelines/topichospital"
  get "guidelines/topicspecialty"
  get "guidelines/favourite"
  get "profiles/show"
  get "guidelines/show"



  devise_for :users

  devise_scope :user do
    get 'signup', to: 'devise/registrations#new', as: :register
    get 'login', to: 'devise/sessions#new', as: :login
    get 'logout', to: 'devise/sessions#destroy', as: :logout
    get 'edit', to: 'devise/registrations#edit', as: :edit
    put 'users' => 'devise/registrations#update', :as => 'user_registration'
    get 'about', to: 'about#about', as: :about
  end

  resources :guidelines
  get 'guidelines', to: 'guidelines#index', as: :guidelines
  get 'favourites', to: "favourites#show", as: :favourites
  get 'topics', to: 'guidelines#list', as: :topics
  get 'hospitals', to: 'guidelines#listhospital', as: :hospitals
  get 'specialties', to: 'guidelines#listspecialty', as: :specialties


 resources :activities

  root :to => 'guidelines#index'

resources :guidelines do
  resources :comments

end
4

1 に答える 1

0

私があなたの質問を正しく理解していれば、このキャストはそれを非常によく説明しています: まだ見ていない場合はhttp://railscasts.com/episodes/406-public-activity 。

私の場合、Post(あなたの代わりにGuidelines)モデルがありComment、追加したばかりです

  include PublicActivity::Model
  tracked owner: Proc.new{ |controller, model| controller.current_user }

Postとモデルの両方に、Comment何も追加せずにすべてがうまく機能しましたactivities_controller

public_activity / comment / _create.html.erb

said  "<%= activity.trackable.body.truncate(100) %>" on <%= link_to activity.trackable.commentable.title, project_post_path(activity.trackable.commentable.project, activity.trackable.commentable.id) %> post.

public_activity / post / _create.html.erb

added a new <%= link_to activity.trackable_type.downcase, project_post_path(activity.trackable.project, activity.trackable.id) %> to <%= link_to activity.trackable.project.title, project_path(activity.trackable.project) %> project.

アクティビティindex.html.erb

<% @activities.each do |activity| %>
  <%= link_to activity.owner.full_name, activity.owner if activity.owner %>
  <%= render_activity(activity) %>
<% end %>
于 2013-03-22T15:43:06.007 に答える