Carriles 4 Asociaciones y preocupaciones polimórficas
Estoy tratando de agregar unEvaluation
modelo para miRails 4
aplicación
He hecho un modelo llamadoevaluation.rb
. Tiene:
class Evaluation < ActiveRecord::Base
belongs_to :evaluator, :polymorphic => true
belongs_to :evaluatable, :polymorphic => true
También he hecho preocupaciones porevaluator
yevaluatable
como:
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
He incluido cada preocupación en mi modelo de usuario:
class User < ActiveRecord::Base
include Evaluator
include Evaluatable
En mi página de presentación, quiero mostrar las evaluaciones de un usuario en particular (recibidas de otros usuarios, que son evaluadores).
En mi show, tengo:
<% 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>
En mi formulario de evaluaciones, no estoy seguro de cómo designar al destinatario de la evaluación. He realizado el formulario básico, pero no tengo claro cómo vincularlo con el usuario que debe recibir la evaluación.
<%= 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} %>
Mi tabla de evaluaciones tiene:
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
PREGUNTAS
¿Cómo configuro la página de presentación para mostrar las evaluaciones recibidas de un usuario?
¿Cómo adapto el formulario para que especifique una identificación de usuario como la persona que debería recibir la evaluación?