在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
答案 0 :(得分:0)
您没有正确使用sanitize
。 sanitize
在视图中使用,而不是在控制器中使用。
要正确使用它,你的模型应该允许一个字段来保存用户的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!