2016-05-28 9 views
0

Ich fühle mich immer noch mit Rails.Schienen 4 - Nach Fertigstellung Auswertungen Modell - Struktur

Ich versuche, meine Projekte basierte App eine Evaluierungsfunktion hinzufügen.

Ich möchte, dass jeder Projektteilnehmer eine Bewertung einreicht, wenn ein Projekt abgeschlossen ist.

Ich habe ein Bewertungsmodell mit:

Evaluation.rb

# == Schema Information 
# 
# Table name: evaluations 
# 
# id    :integer   not null, primary key 
# user_id   :integer 
# evaluatable_id :integer 
# evaluatable_type :string 
# overall_score  :integer 
# project_score  :integer 
# personal_score :integer 
# remark   :text 
# work_again?  :boolean 
# continue_project? :boolean 
# created_at  :datetime   not null 
# updated_at  :datetime   not null 
# 
# Indexes 
# 
# index_evaluations_on_evaluatable_type_and_evaluatable_id (evaluatable_type,evaluatable_id) UNIQUE 
# 

class Evaluation < ActiveRecord::Base 

    # --------------- associations 

    belongs_to :evaluator, :polymorphic => true, class_name: 'Evaluation' 
    belongs_to :evaluatable, :polymorphic => true, class_name: 'Evaluation' 


    # --------------- scopes 

    # --------------- validations 

    # --------------- class methods 

    # --------------- callbacks 

    # --------------- instance methods 

    # --------------- private methods 

end 

Ich habe Bedenken für:

module Evaluatable 
    extend ActiveSupport::Concern 

    included do 
     has_many :received_evaluations, as: :evaluatable, dependent: :destroy, class_name: 'Evaluation' 
    end 
end 

module Evaluator 
    extend ActiveSupport::Concern 

    included do 
     has_many :given_evaluations, as: :evaluator, dependent: :destroy, class_name: 'Evaluation' 

    end 
end 

Ich versuche dann für jeden Benutzer Auswertungen zu zeigen (erhalten) wie:

<% Evaluation.find(params[:id]).evaluation.order('created_at DESC').each do |eval| %> 
           <div id="portfolioFiltering" class="masonry-wrapper row"> 
             <%= eval.remark %> 
             <%= eval.personal_score %> 
             <small><%= eval.created_at %></small> 
           </div>  
          <% end %> 

Aber ich bekomme diese Fehlermeldung:

undefined method `evaluations' for #<Evaluation:0x007ff274b13b90> 
Did you mean? evaluator 
       evaluator= 

Ich bin nicht einmal sicher, ob ich die Fehlermeldung verstanden habe, geschweige denn herausgefunden, was dagegen zu tun.

Kann jemand diese Nachricht sinnvoll machen?

Antwort

0

entfernt diese aus Ihren Beziehungen

:polymorphic => true, 

Hier ist ein Artikel, wenn wir polymorphics Beziehungen verwenden sollten. http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

+0

Aber warum? Ich möchte, dass jede Partei an einem Projekt die anderen Projektteilnehmer bewertet – Mel

+0

Dies ist, was ich versuche zu implementieren: http://stackoverflow.com/questions/36394489/rails-4-polymorphic-associations-and-concerns – Mel