2015-04-29 8 views
3

Я работаю над приложением, где люди могут любить сообщения. Я использую жемчужину общественной деятельности, а Acts As Votable.Acts As Votable With Public Activity

Я получаю эту ошибку, когда я пытаюсь просмотреть страницу:

undefined method 'get_upvotes' for PublicActivity::Activity:0x00000101453ad8 

get_upvotes должен прийти с acts_as_votable. Что я делаю не так?

пользователя Модель

class User < ActiveRecord::Base 
    acts_as_voter 
end 

активность Модель

class Activity < ActiveRecord::Base 
    acts_as_votable 
end 

View Code

<% if activity.owner == current_user %> 
    <i>This has been liked <strong><%= activity.get_upvotes.size %></strong> times</i> 
<% else %> 
    <%= link_to like_activity_path(activity), class: "like", method: :put do %> 
     <button type="button" class="btn btn-info" aria-label="Left Align"> 
     <span class="glyphicon glyphicon-thumbs-up glyphicon-align-center" aria-hidden="true"></span> 
     <span class="badge"><%= activity.get_upvotes.size %></span> 
     </button> 
    <% end %> 
    <a class="btn btn-default btn-xs timeline-button"><i class="fa fa-heart"></i> I Liked This</a> 
<% end %> 

Деятельность контроллера

class ActivitiesController < ApplicationController 

    before_action :authenticate_user!, only: [:index, :upvote] 

    def index 
     @users = current_user.active_friends 
     @users.push(current_user) 
     case params[:content] when 'posts' 
      @activities = PublicActivity::Activity.where(owner_id: @users, trackable_type: "Post").paginate(page: params[:page], per_page: 6).order('created_at DESC') 
     else 
      @activities = PublicActivity::Activity.where(owner_id: @users).paginate(page: params[:page], per_page: 6).order('created_at DESC') 
     end 
    end 

    def upvote 
     @activity = Activity.find(params[:id]) 
     @activity.upvote_from current_user 
     redirect_to activities_path 
    end 

end 

Спасибо за любую помощь вы можете предложить. Я нахожусь на грани знания Rails. :)

+0

Попробуйте извлекая ** Общественная деятельность ** камень для вашего поставщика папку/драгоценных камней и Гото **/поставщика/драгоценные камни/public_activity-1.4.2/Библиотека/public_activity/ОРМ/active_record/activity.rb ** и примените там 'act_as_votable' и проверьте, работает ли он. – Abhi

+0

use activity.likes.size или более лучше для отображения использования <% = number_to_human (activity.likes.size)%> – Milind

+0

Изменение этого параметра возвращает эту ошибку: undefined method 'likes ' –

ответ

0

Модель Activity живет внутри модуля PublicActivity, что означает, что это должно работать.

class PublicActivity::Activity 
    acts_as_votable 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^