Using sanitize within a Rails controller

2019-02-03 06:01发布

I'm trying to call sanitize within a controller. Here's what I tried:

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

However, I'm getting this error:

undefined method `white_list_sanitizer' for FooController:Class

I searched around and people recommended switching the include line to include ActionView::Helpers, but that results in this error:

undefined method `url_for' for nil:NilClass

What's the correct way to call sanitize? I'm using Rails 2.3.5.

2条回答
Luminary・发光体
2楼-- · 2019-02-03 06:23

you can use this ActionController::Base.helpers inside action method:

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

Hope this helps

查看更多
Anthone
3楼-- · 2019-02-03 06:31

I'm not sure what you're trying to do here but I'm almost 100% certain it doesn't belong in the controller.

If you want to sanitize an attribute before you save it to the DB, do so in the model with a before save callback.

Otherwise, sanitize in the view template or view helper.

查看更多
登录 后发表回答