Как санировать объект при создании в Rails 2.3.x? - PullRequest
0 голосов
/ 02 июня 2011

В своем поиске я в основном нашел способы санации данных при выводе ИЛИ санации отдельных полей ввода, используя:

<%=h @name %> OR ['name = ?', params[:name]]

Однако я создаю объект примерно так:

@user = User.new( params[:user] )

Теперь я могу очистить каждый ключ в хэше params [: user] один за другим, но я уверен, что есть более элегантный метод.

1 Ответ

0 голосов
/ 02 июня 2011

Если это по причинам оптимизации, используйте гем Sanitize . Однако, поскольку вы говорите о том, чтобы делать это для каждого поля, здесь что-то пахнет немного неправильно. ActiveRecord уже экранирует ввод, чтобы избежать проблем с внедрением SQL, но вам не нужно HTML-экранировать каждую вещь, которая входит в вашу базу данных (и это может вызвать проблемы позже, если вы захотите каким-то образом обработать исходные данные ). Единственные вещи, которые вы можете захотеть очистить перед тем, как они попадут в базу данных, из соображений производительности, это такие вещи, как поля ввода Rich Text Editor, такие как данные, поступающие из TinyMCE, где вы действительно хотите фильтровать данные по белому списку, а не просто избегайте его с помощью простых преобразований строк.

...