消除Trix输入

时间:2017-09-13 15:37:44

标签: ruby-on-rails ruby-on-rails-5 trix

在Rails 5.1下我使用Trix来允许用户编辑他们的“法律条件”。然后我试图在用户记录更新之前清理控制器中的这个“合法”参数,但最终得到:

undefined method `sanitize'

这里是代码:

params[:user][:legal] = sanitize params[:user][:legal], tags: %w(strong div strong br li ul)

def user_params
  params.require(:user).permit(:presentation, :linktowebsite, :legal)
end

看不到与此处显示的正常用法不同的任何内容:http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

1 个答案:

答案 0 :(得分:0)

您没有正确使用sanitizesanitize在视图中使用,而不是在控制器中使用。

要正确使用它,你的模型应该允许一个字段来保存用户的html输入,但你想要"清理"它在视图中使用时会阻止向用户发送/显示不安全或非白名单的标签/属性。

如果您希望在保存之前删除html标记/属性,您可能需要查看strip_tags

strip_tags("Strip <i>these</i> tags!")
# => Strip these tags!

strip_tags("<b>Bold</b> no more!  <a href='more.html'>See more here</a>...")
# => Bold no more!  See more here...

strip_tags("<div id='top-bar'>Welcome to my website!</div>")
# => Welcome to my website!