在Rails控制器中使用清理

时间:2010-10-21 09:26:01

标签: ruby-on-rails controller helper sanitize

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

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

但是,我收到了这个错误:

undefined method `white_list_sanitizer' for FooController:Class

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

undefined method `url_for' for nil:NilClass

拨打sanitize的正确方法是什么?我正在使用Rails 2.3.5。

3 个答案:

答案 0 :(得分:42)

您可以使用此ActionController::Base.helpers内部操作方法:

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

希望这有帮助

答案 1 :(得分:3)

路轨6:

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

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

请参阅https://github.com/rails/rails-html-sanitizer

答案 2 :(得分:-3)

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

如果要在将属性保存到数据库之前清理属性,请在模型中使用之前的保存回调来执行此操作。

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