gpt4 book ai didi

mysql - 我如何在 Rails 4 上的表中添加求和列

转载 作者:行者123 更新时间:2023-11-29 00:00:08 25 4
gpt4 key购买 nike

我已经有一个包含列的“寄存器”表; :full_name, :amount_paid, :user_id, :course_id。我还有包含以下列的类(class)表::title, :price

我想在我的注册表中添加一列,用于计算 register.course.price 和 register 的余额。

所以我尝试了

rails g migration add_balance_to_registers balance:"register.course.price - register.amount_paid"

但是当我尝试

rake db:migrate

我得到一个错误

最佳答案

您可以将字段添加到 registers 表,然后用适当的值填充它。

首先使用新的migration 添加字段

rails g migration addBalanceToRegisters balance:float

然后开始迁移以将字段添加到registersrake 数据库:迁移

但是 balance 字段将为空,现在您必须填充它。

您可以为此创建rake 任务。

lib/tasks/ 文件夹中添加新文件 registers.rake

registers.rake 中添加以下代码:

namespace :registers do
desc "populate registers balance with appropriate balance amount"
task :sync_balance => :environment do
Register.all.each do |r|
b = r.course.price - r.amount_paid
r.update balance: b
end
end
end

然后运行这个rake任务,比如

rake 寄存器:sync_balance

关于mysql - 我如何在 Rails 4 上的表中添加求和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30184426/

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