strip_tags在我的视图页面中适用于我,但不适用于我的模型(我在before_save函数中使用它)
答案 0 :(得分:58)
您还可以在模型中访问帮助程序,如下所示:
ActionController::Base.helpers.strip_tags(text)
答案 1 :(得分:12)
ActionView::Base.full_sanitizer.sanitize(your_html_string)
这对你有用。 或者您可以定义一个帮助器:
def strip_html_tags(string)
ActionView::Base.full_sanitizer.sanitize(string)
end
然后使用它:
strip_html_tags(your_html_string)
要删除某些特定标记,请传递其他参数。 资料来源:Sanitize Rails API Dock
答案 2 :(得分:0)
穷人的截断者:
my_string[0, 145]
它将在模型中工作,而无需从ActionController :: Base调用辅助方法。它不会为你添加省略号,但这可能很容易修复...
答案 3 :(得分:0)
因此,我不喜欢这些解决方案中的任何一个,因为我希望将视图功能保留在我的模型之外。因此,我改为使用装饰器(例如https://github.com/drapergem/draper),然后能够使用快捷方式h.strip_tags
的辅助方法。
答案 4 :(得分:-1)
答案 5 :(得分:-6)
strip_tags
是一种帮助方法,并且通常在模型内部不提供帮助程序。
您可能希望使用sanitize gem之类的内容来代替