Rails 4 Polymorphe Assoziationen und Bedenken
Ich versuche ein @ hinzuzufügEvaluation
Modell zu meinemRails 4
app.
Ich habe ein Modell namens @ gemacevaluation.rb
. Es hat
class Evaluation < ActiveRecord::Base
belongs_to :evaluator, :polymorphic => true
belongs_to :evaluatable, :polymorphic => true
Ich habe auch Bedenken für @ gemacevaluator
undevaluatable
wie
module Evaluator
extend ActiveSupport::Concern
included do
has_many :given_evaluations, as: :evaluator, dependent: :destroy, class_name: 'Evaluation'
end
end
module Evaluatable
extend ActiveSupport::Concern
included do
has_many :received_evaluations, as: :evaluatable, dependent: :destroy, class_name: 'Evaluation'
end
end
Ich habe jedes Anliegen in mein Benutzermodell aufgenommen:
class User < ActiveRecord::Base
include Evaluator
include Evaluatable
Auf meiner Show-Seite möchte ich die Bewertungen eines bestimmten Benutzers anzeigen (von anderen Benutzern erhalten - die Evaluatoren sind).
In meiner Show habe ich:
<% Evaluation.find(params[:id]).evaluations.order('created_at DESC').each do |eval| %>
<div id="portfolioFiltering" class="masonry-wrapper row">
<%= eval.remark %>
<%= eval.personal_score %>
<small><%= eval.created_at %></small>
In meinem Bewertungsformular weiß ich nicht, wie ich den Empfänger der Bewertung benennen soll. Ich habe das Basisformular erstellt, aber ich weiß nicht, wie ich es an den Benutzer binden soll, der die Bewertung erhalten soll.
<%= simple_form_for(@evaluation) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :score, collection: 1..10, autofocus: true, :label => "How do you rate this experience (1 being did not meet expectations - 10 being met all expectations) ?" %>
<%= f.input :remark, as: :text, :label => "Evaluate your project experience", :input_html => {:rows => 10} %>
Meine Bewertungstabelle hat:
t.integer "user_id"
t.integer "evaluatable_id"
t.string "evaluatable_type"
t.integer "overall_score"
t.integer "project_score"
t.integer "personal_score"
t.text "remark"
t.boolean "work_again?"
t.boolean "continue_project?"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "evaluations", ["evaluatable_type", "evaluatable_id"], name: "index_evaluations_on_evaluatable_type_and_evaluatable_id", unique: true, using: :btree
FRAGE
Wie richte ich die Show-Seite so ein, dass die erhaltenen Bewertungen eines Benutzers angezeigt werden?
Wie passe ich das Formular so an, dass es eine Benutzer-ID als Person angibt, die die Bewertung erhalten soll?