避免使用ActiveRecord#save记录大字段

时间:2011-04-20 17:49:19

标签: mysql ruby-on-rails activerecord ruby-on-rails-2 ruby-1.8

我需要阻止ActiveRecord#save记录大字段的内容。

有没有办法在Rails 2.3.x上配置它?

@document.save #=> Will log something like:

Apr 20 13:45:42 ubuntu rails[2619]: Document::HTML Update (7.0ms)   UPDATE `documents` SET `some_meta_data` = 1, `more_meta_data` = 2, `document_content` = '\n\n\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional.....................'
Apr 20 13:45:42 ubuntu rails[2619]: SQL (5.8ms)   COMMIT

我不希望记录字段document_content,因为它是mysql'text'类型。

1 个答案:

答案 0 :(得分:2)

如果您使用的是rails 3,请在config / application.rb中执行以下操作:

config.filter_parameters += [:password, :document_content]

然后重新启动您的应用。从那时起,日志应显示类似'document_content' = [ FILTERED ]的内容,如果内存为我服务的话。

如果您使用的是rails 2,则需要将以下内容放入控制器中:

filter_parameter_logging :document_content

如果需要,您可以附加以逗号分隔的字段列表。