Ruby on rails Rails 4多态关联和关注点

Ruby on rails Rails 4多态关联和关注点,ruby-on-rails,polymorphism,polymorphic-associations,Ruby On Rails,Polymorphism,Polymorphic Associations,我正在尝试将评估模型添加到我的rails4应用程序中 我制作了一个名为evaluation.rb的模型。它有: class Evaluation < ActiveRecord::Base belongs_to :evaluator, :polymorphic => true belongs_to :evaluatable, :polymorphic => true 我已在我的用户模型中包含了每个问题: class User < ActiveRecord::Ba

我正在尝试将
评估
模型添加到我的
rails4
应用程序中

我制作了一个名为
evaluation.rb
的模型。它有:

class Evaluation < ActiveRecord::Base

  belongs_to :evaluator, :polymorphic => true
  belongs_to :evaluatable, :polymorphic => true
我已在我的用户模型中包含了每个问题:

class User < ActiveRecord::Base
   include Evaluator
   include Evaluatable
问题

如何设置显示页面以显示收到的用户评估


如何调整表单,以便将用户id指定为应接收评估的人员?

如何设置显示页面以显示已接收的用户评估?

您的模型关注点应该可以帮助您做到这一点。在
userscoontroller#show
操作中,只需添加以下内容即可:

@received_evaluations = @user.received_evaluations
然后,您可以在show模板中使用它:

<% @received_evaluations.each do |evaluation| %>
  // render some view stuff
<% end %>
或者,这个更简单的语句也应该这样做:

@evaluation.evaluatable = user_to_evaluate
同样,您应该能够以相同的方式设置计算器:

@evaluation.evaluator = user_that_evaluates
他认为:

<% @users_to_evaluate.each do |user| %>
  <%= simple_form_for(Evaluation.new) 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}  %>
      <%= f.hidden_field :evaluator_id, :value => current_user.id %>
      <%= f.hidden_field :evaluator_type, :value => current_user.class.to_s %>
      <%= f.hidden_field :evaluatable_id, :value => user.id %>
      <%= f.hidden_field :evaluatable_type, :value => user.class.to_s %>
    </div>
  <% end %>
<% end %>

“您如何评价此体验(1人未达到预期-10人达到所有预期)?”>
“评估您的项目体验”,:input_html=>{:rows=>10}%>
当前用户id%>
当前_user.class.to_s%>
user.id%>
user.class.to_%%>

问题很好,而且你很善于解释你的问题。。让我们看看是否有人帮助您使用
评估
评估用户以外的对象?根据你的回答,答案可以简化。是的。我想评估用户可以轻松完成的项目!!非常感谢,马克。今晚我要试一试。
<% @received_evaluations.each do |evaluation| %>
  // render some view stuff
<% end %>
@evaluation.evaluatable_id = user_to_evaluate.id
@evaluation.evaluatable_type = user_to_evaluate.class.to_s
@evaluation.evaluatable = user_to_evaluate
@evaluation.evaluator = user_that_evaluates
<% @users_to_evaluate.each do |user| %>
  <%= simple_form_for(Evaluation.new) 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}  %>
      <%= f.hidden_field :evaluator_id, :value => current_user.id %>
      <%= f.hidden_field :evaluator_type, :value => current_user.class.to_s %>
      <%= f.hidden_field :evaluatable_id, :value => user.id %>
      <%= f.hidden_field :evaluatable_type, :value => user.class.to_s %>
    </div>
  <% end %>
<% end %>