2013-03-08 3 views
0

У меня есть модель руководства и модель комментариев, и я пытаюсь заставить их обойтись в моем фиде действий. Рекомендации работают, комментарии - нет.public_activity model

2 основные вопросы:

Я не уверен, как добавить «комментарий» в качестве второго trackable_type в activities_controller.rb, и я не уверен, как сортировать мой взгляд в комментариях/_create.rb - он должен сказать, что комментарий добавлен в x-ориентир (и ссылку на эту страницу с указанием руководства).

guidelines.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 

comments.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') 

просмотров/public_activity/комментарий/_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/руководство/_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 

ответ

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/пост/_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 %>