Using sanitize within a Rails controller

好久不见. 提交于 2019-11-28 22:27:36

问题


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.


回答1:


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




回答2:


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.



来源:https://stackoverflow.com/questions/3985989/using-sanitize-within-a-rails-controller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!