I am trying to add an Evaluation model to my Rails 4 application.
I created a model called evaluation.rb . He has:
class Evaluation < ActiveRecord::Base belongs_to :evaluator, :polymorphic => true belongs_to :evaluatable, :polymorphic => true
I was also worried about evaluator and evaluatable like:
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
I have included every problem in my user model:
class User < ActiveRecord::Base include Evaluator include Evaluatable
On my show page, I want to show specific user ratings (received from other users who are evaluators).
In my show, I have:
<% 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 my assessment form, Iβm not sure how to assign a rating recipient. I made the main form, but I donβt know how to associate it with the user who needs to get the grade.
<%= 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} %>
My grades table has:
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
QUESTIONS
How to customize the display page to display the received user ratings?
How do I configure the form to indicate the user ID as the person who should receive the rating?