2

我需要防止 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' 类型。

4

1 回答 1

2

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

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

然后重新启动您的应用程序。从那时起,日志上应该会显示类似'document_content' = [ FILTERED ]记忆是否对我有用。

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

filter_parameter_logging :document_content

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

于 2011-04-20T17:53:17.747 回答