【发布时间】:2015-06-18 18:09:25
【问题描述】:
在 Rails 控制台中测试一些东西时,我注意到当我调用记录并尝试保存它时发生了这种奇怪的事情。
2.1.5 :026 > p = WorkOrder.first
WorkOrder Load (0.4ms) SELECT `work_orders`.* FROM `work_orders` ORDER BY `work_orders`.`id` ASC LIMIT 1
=> #<WorkOrder id: 3, client_id: 4, created_at: "2015-06-17 17:12:07", updated_at: "2015-06-17 17:12:07", dueDate: "2015-07-17", number: "0221506-003", project_type_id: 2, monthlySequenceNumber: "003", projectDescription: "Project", status_id: 1, labels_id: nil>
2.1.5 :027 > p.save
(0.2ms) BEGIN
ProjectType Load (0.5ms) SELECT `project_types`.* FROM `project_types` WHERE `project_types`.`id` = 2 LIMIT 1
(0.1ms) COMMIT
=> true
为什么它似乎是在关联对象上执行选择?此外,记录也没有提交回数据库。我错过了什么导致它以这种看似奇怪的方式表现?
编辑: 促使我开始尝试保存从数据库中提取的记录的原因是我在执行类似
的操作时遇到了相同的问题p.delete
然后
p.save
这将返回 true,但只会在项目类型上执行那个奇怪的选择
【问题讨论】:
标签: ruby-on-rails