Избегайте ActiveRecord # сохраняйте запись больших полей - PullRequest
2 голосов
/ 20 апреля 2011

Мне нужно запретить ActiveRecord # сохранять содержимое больших полей при регистрации.

Есть ли способ настроить это на 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 Ответ

2 голосов
/ 20 апреля 2011

Если вы используете rails 3, сделайте что-то подобное в config / application.rb:

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

Затем перезапустите ваше приложение.С этого момента в журнале должно отображаться что-то вроде 'document_content' = [ FILTERED ], если память мне не изменяет.

Если вы используете рельсы 2, вам нужно поместить в контроллер следующее:

filter_parameter_logging :document_content

При необходимости вы можете добавить список полей через запятую.

...