0

我有一个模型无法使用 update_attributes 正确更新,但会使用 update_column 进行更新。我假设这是因为回调正在干扰。不幸的是,它没有抛出任何错误,所以我无法弄清楚问题到底出在哪里。

有没有办法跟踪回调,以便我可以一个一个地检查它们,直到找到罪魁祸首?

4

2 回答 2

1

API 文档展示了如何访问回调链。

这是您可以在控制台中使用的一些衬里,它们应该会给您这个想法:

# Print before_validate callbacks
Post._validate_callbacks.select { |cb| cb.kind.eql? :before }.each { |cb| puts cb.filter }

# Print after_update callbacks
Post._update_callbacks.select { |cb| cb.kind.eql? :after }.each { |cb| puts cb.filter }

请记住,对模型的更新也会调用 save,因此最好将它们全部浏览一遍。

于 2013-02-06T06:51:56.907 回答
-1

检查您传递给该update_attributes()方法的参数是否可批量分配。

它们应该:attr_accessible在您的 rails 模型中定义,否则它们将在保存之前被删除。

class Widget < ActiveRecord::Base
  attr_accessible :name
end

更多信息在这里http://guides.rubyonrails.org/security.html

于 2013-01-20T01:16:35.193 回答