Rails 4 – 完成后评估模型 – 结构

我仍然对Rails有所了解。

我正在尝试为基于项目的app添加评估function。

我希望每个项目参与者在项目完成时提交评估。

我有一个评估模型:

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  true, class_name: 'Evaluation' belongs_to :evaluatable, :polymorphic => true, class_name: 'Evaluation' # --------------- scopes # --------------- validations # --------------- class methods # --------------- callbacks # --------------- instance methods # --------------- private methods end 

我担心:

 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 

然后我试图将每个用户的评估(收到)显示为:

  

但我得到这个错误:

 undefined method `evaluations' for # Did you mean? evaluator evaluator= 

我甚至不确定我是否理解了错误信息,更不用说弄清楚该怎么办了。

任何人都可以理解这个消息吗?

从你的关系中删除它

 :polymorphic => true, 

这是一篇我们应该使用多态关系的文章。 http://guides.rubyonrails.org/association_basics.html#polymorphic-associations