32

我正在尝试sanitize在控制器内调用。这是我尝试过的:

class FooController < ApplicationController
  include ActionView::Helpers::SanitizeHelper
  # ...
end

但是,我收到此错误:

undefined method `white_list_sanitizer' for FooController:Class

我四处搜索,人们建议将 include 行切换为 include ActionView::Helpers,但这会导致此错误:

undefined method `url_for' for nil:NilClass

正确的调用方式是sanitize什么?我正在使用 Rails 2.3.5。

4

3 回答 3

58

你可以使用这个ActionController::Base.helpers内部动作方法:

class SiteController < ApplicationController
  def index
    render :text => ActionController::Base.helpers.sanitize('<b>bold</b>')
  end
end

希望这可以帮助

于 2011-05-20T20:28:31.607 回答
5

导轨 6:

要从文本中删除链接(例如),只需调用:

...
Rails::Html::LinkSanitizer.new.sanitize("links here will be stripped")
...

https://github.com/rails/rails-html-sanitizer

于 2020-02-28T20:01:47.643 回答
-3

我不确定您要在这里做什么,但我几乎 100% 确定它不属于控制器。

如果您想在将属性保存到数据库之前对其进行清理,请在模型中使用保存前回调执行此操作。

否则,在视图模板或视图助手中进行清理。

于 2011-05-20T19:55:46.553 回答