gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中更新和保存一个模型的另一个模型?

转载 作者:行者123 更新时间:2023-12-04 07:40:04 25 4
gpt4 key购买 nike

在我的程序中,我有一个模型,卡路里,它根据一个人吃的东西给他们一个总分。在为每天的营养信息计算该点值后,我想更新用户模型中的“点”变量。

我在卡路里模型中的代码是

before_save :calculate_points

def calculate_points
# snipped calculations
User.where(user_id).first.point_calculation
end

在用户模型中,我有

def point_calculation
self.points = Calorie.where(user_id: id).sum(:points)
end

我通过创建回调 before_save 测试了 point_calculation 模型,它在那里工作正常。但是在每次输入新的卡路里后进行更新比用户更新他们的设置更有意义。有什么建议吗?我错过了什么?

感谢您的帮助。

最佳答案

我假设您的卡路里模型与用户有 has_one 关系,而用户 has_many 卡路里。

在卡路里模型中:

after_save :update_user_points

def update_user_points
self.user.update_calorie_points!
end

在用户模型中:

def update_calorie_points!
self.update_column(:points, self.calories.sum(:points))
end

关于ruby-on-rails - 如何在 Rails 中更新和保存一个模型的另一个模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com