根据Rails中的第一张表数据更新第二张表

SRINIVAS SATEESH

我想根据评估表更新最终分数表。您能告诉我下面的代码有什么问题吗,您如何最终将数据保存在第二个表中?

评估文件

class Evaluation < ActiveRecord::Base
  belongs_to :developer
  belongs_to :supervisor
  after_save :eval_score_calculator

  def eval_score_calculator
    finalscore.score_calculator
  end
end

Final_score.rb

class FinalScore < ActiveRecord::Base
  belongs_to :developer

  def score_calculator
    @job_performance_avg = (:job_knowledge_score.to_s.to_f + :quality_score.to_s.to_f + :quantity_score.to_s.to_f)/3
    @interpersonal_skills_avg = (:team_contribution_score.to_s.to_f + :seeks_to_improve_score.to_s.to_f + :accepts_responsibility_score.to_s.to_f + :interaction_with_others_score.to_s.to_f+ :integrity_and_trust_score.to_s.to_f)/5
    @organization_skills_avg = (:organization_planning_score.to_s.to_f + :use_of_company_resources_score.to_s.to_f + :time_management_score.to_s.to_f )/3
    @final_score  = 0.5 * @job_performance_avg + 0.25 * @interpersonal_skills_avg + 0.25 * @organization_skills_avg
  end
end
胡安

1)如果要更新表,则需要.save将更改存储在数据库中。因此,在获得所有计算之后,您应该修改所需的列,然后将其保存。(假设final_rating是Finalscore表的一列)

class FinalScore < ActiveRecord::Base
  #other belongs_to
  belongs_to :evaluation

  def score_calculator(param1, param2)
    #your calculations...

    #update the fields you want of this final score
    self.onething = param1
    self.anotherthing = param2

    #and at the end save it
    self.save
  end
end

2)在评估类中,您应该首先检索与此评估相关的最终分数对象,然后调用score_calculator(假设您具有与此评估相关联的finalscore对象的ID,作为评估表中的一列以及Finalscore该表的名称)

class Evaluation < ActiveRecord::Base
   #belongs_to ...
   after_save :eval_score_calculator
   has_one :finalscore

  def eval_score_calculator

    #finds the finalscore object in the table of finalscores
    Finalscore.find(finalscore_id).score_calculator(a ,b)

  end

end

a并且b是从你的域evaluation对象,你传递给score_calculator以计算evalutaion的分数,然后将其保存到finalscore表中。您已将此finalscore对象更新,并且还与我在下面建议您evaluation的字段相关联finalscore_id

如果你没有finalscore_id在你的evaluation表,我建议你使用迁移,以简化使用和遵守的关系添加它宣布has_onebelongs_to这个你可以看看 http://guides.rubyonrails.org/association_basics.html#有一个协会

3)您正在使用@声明的每个变量,我只是想知道为什么。@myVar用于在控制器和视图之间传递数据。要在模型中定义变量,只需键入不带的变量@,无论如何这些变量在您的视图中是不可用的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据迅速选择的第一张表行更改第二张表内容

来自分类Dev

如何从第一张表重复获取第二张表的行数

来自分类Dev

如何从第一张表插入相同的ID到第二张表

来自分类Dev

在基于第一张表的信息选择第二张表时,如何用词组表示SQL查询

来自分类Dev

如何获得不是第一张的表?

来自分类Dev

转到未隐藏的第一张表

来自分类Dev

如果上传了第二张图片,则第一张图片将被删除,第二张图片将取代此第一张图片,如何在本机中实现

来自分类Dev

如果第二张表中的条件为真,则从第一张表中选择1条记录(所有参考行均处于活动状态= 0)

来自分类Dev

导入的工作表随机插入为第一张而不是最后一张

来自分类Dev

第二张Mat图像显示了第一张Mat图像的结果

来自分类Dev

当添加第二张图表时..第一张图表消失(画布图表)

来自分类Dev

标签式Google地图,显示第一张而不是第二张地图

来自分类Dev

第二张Mat图像显示了第一张Mat图像的结果

来自分类Dev

用户在删除第一张图片之前上传第二张图片

来自分类Dev

在select中添加一列,以返回第一张表中的ID是否存在于另一张表中

来自分类Dev

根据mysql中另一张表中的值更新一张表中的多列

来自分类Dev

根据列更新同一张表中的相同数据

来自分类Dev

mysql根据另一张表的数据从一张表中选择数据

来自分类Dev

拍摄的第一张照片与第二张照片叠加在一起,或者在第二张照片等之后消失

来自分类Dev

提取第一张表的第一行

来自分类Dev

LEFT JOIN仅显示第一张表的第一行

来自分类Dev

如何修复Slick.js中的第一张幻灯片并从第二张幻灯片开始?

来自分类Dev

根据另一张表中的编号在一张表中插入多行

来自分类Dev

如何找到一张表有第二张表的元素?

来自分类Dev

使用另一张表的数据更新一张表的记录

来自分类Dev

OpenXml WorksheetParts.First()并不总是MS Excel显示的第一张表

来自分类Dev

ExcelJS - 如何将第一张工作表设置为活动状态

来自分类Dev

从提要内容中删除第一张图片

来自分类Dev

在MySQL中从一张表到另一张表的数据

Related 相关文章

  1. 1

    根据迅速选择的第一张表行更改第二张表内容

  2. 2

    如何从第一张表重复获取第二张表的行数

  3. 3

    如何从第一张表插入相同的ID到第二张表

  4. 4

    在基于第一张表的信息选择第二张表时,如何用词组表示SQL查询

  5. 5

    如何获得不是第一张的表?

  6. 6

    转到未隐藏的第一张表

  7. 7

    如果上传了第二张图片,则第一张图片将被删除,第二张图片将取代此第一张图片,如何在本机中实现

  8. 8

    如果第二张表中的条件为真,则从第一张表中选择1条记录(所有参考行均处于活动状态= 0)

  9. 9

    导入的工作表随机插入为第一张而不是最后一张

  10. 10

    第二张Mat图像显示了第一张Mat图像的结果

  11. 11

    当添加第二张图表时..第一张图表消失(画布图表)

  12. 12

    标签式Google地图,显示第一张而不是第二张地图

  13. 13

    第二张Mat图像显示了第一张Mat图像的结果

  14. 14

    用户在删除第一张图片之前上传第二张图片

  15. 15

    在select中添加一列,以返回第一张表中的ID是否存在于另一张表中

  16. 16

    根据mysql中另一张表中的值更新一张表中的多列

  17. 17

    根据列更新同一张表中的相同数据

  18. 18

    mysql根据另一张表的数据从一张表中选择数据

  19. 19

    拍摄的第一张照片与第二张照片叠加在一起,或者在第二张照片等之后消失

  20. 20

    提取第一张表的第一行

  21. 21

    LEFT JOIN仅显示第一张表的第一行

  22. 22

    如何修复Slick.js中的第一张幻灯片并从第二张幻灯片开始?

  23. 23

    根据另一张表中的编号在一张表中插入多行

  24. 24

    如何找到一张表有第二张表的元素?

  25. 25

    使用另一张表的数据更新一张表的记录

  26. 26

    OpenXml WorksheetParts.First()并不总是MS Excel显示的第一张表

  27. 27

    ExcelJS - 如何将第一张工作表设置为活动状态

  28. 28

    从提要内容中删除第一张图片

  29. 29

    在MySQL中从一张表到另一张表的数据

热门标签

归档