【发布时间】:2014-06-20 06:40:44
【问题描述】:
我正在为 rails 和 db:migrate 苦苦挣扎。我使用此代码进行了迁移
class SetDefaultInstallmentsForLicenses < ActiveRecord::Migration
def up
License.where(code: 'LEADER').each do |leader|
puts "Modifying license #{leader.id} with code #{leader.code}"
leader.installment_available = true
leader.installment_number = 5
leader.save
puts "After save #{leader.installment_available} #{leader.installment_number}"
leader = License.find(leader.id)
puts "After save #{leader.installment_available} #{leader.installment_number}"
end
end
def down
end
end
运行迁移后有这个输出
== SetDefaultInstallmentsForLicenses: migrating ==============================
Modifying license 3 with code LEADER
After save true 5
After save f
== SetDefaultInstallmentsForLicenses: migrated (0.0037s) =====================
清晰可见执行了迁移,找到了记录,更改并保存了,但重新加载记录后,更改不存在。 怎么了?
【问题讨论】:
-
你应该做
puts leader.save,才能真正知道保存是否成功。 -
leader.save 返回 true
标签: ruby-on-rails ruby database-migration dbmigrate