ruby-on-rails-3 – 如何在回调中获取列的旧值?
发布时间:2020-12-17 02:42:14 所属栏目:百科 来源:网络整理
导读:在after_update上,在我的模型中.如何获取列的旧值? 解决方法 您的模型的changed_attributes()方法将为您提供已更改属性的哈希值及其原始值,甚至是after_udpate.更多信息和更多相关方法 here. class MyModel ActiveRecord::Base after_update :log_changed d
在after_update上,在我的模型中.如何获取列的旧值?
解决方法
您的模型的changed_attributes()方法将为您提供已更改属性的哈希值及其原始值,甚至是after_udpate.更多信息和更多相关方法
here.
class MyModel < ActiveRecord::Base after_update :log_changed def log_changed puts "changed attributes:" puts changed_attributes.inspect end end …在控制台中提供以下内容: $rails console Loading development environment (Rails 3.0.7) test(dev)> m = MyModel.first => #<MyModel id: 134611365,name: "oldname",created_at: "2011-09-16 10:27:53",updated_at: "2011-09-20 11:58:11"> test(dev)> m.name = 'newname' => "newname" test(dev)> m.save SQL (0.2ms) BEGIN SQL (0.4ms) SHOW TABLES AREL (0.2ms) UPDATE `mymodels` SET `updated_at` = '2011-09-20 12:07:34',`name` = 'newname' WHERE `mymodels`.`id` = 134611365 changed attributes: {"name"=>"oldname","updated_at"=>Tue,20 Sep 2011 11:58:11 UTC +00:00} SQL (83.9ms) COMMIT => true test(dev)> m.changed_attributes => {} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |