Использование санитарии в контроллере Rails
Я пытаюсь вызвать sanitize
внутри контроллера. Вот что я пробовал:
class FooController < ApplicationController
include ActionView::Helpers::SanitizeHelper
# ...
end
Однако я получаю эту ошибку:
undefined method `white_list_sanitizer' for FooController:Class
Я обыскал, и люди рекомендовали включить строку include, чтобы включить ActionView::Helpers
, но это приводит к этой ошибке:
undefined method `url_for' for nil:NilClass
Каков правильный способ вызова sanitize
? Я использую Rails 2.3.5.
Ответы
Ответ 1
вы можете использовать этот метод ActionController::Base.helpers
внутри действия:
class SiteController < ApplicationController
def index
render :text => ActionController::Base.helpers.sanitize('<b>bold</b>')
end
end
Надеюсь, что это поможет
Ответ 2
Я не уверен, что вы пытаетесь сделать здесь, но я почти на 100% уверен, что он не принадлежит контроллеру.
Если вы хотите дезинфицировать атрибут, прежде чем сохранять его в БД, сделайте это в модели с обратным вызовом перед сохранением.
В противном случае выполните санитарию в шаблоне просмотра или в помощнике вида.