在Rails 5.1下,我使用Trix来允许用户编辑他们的“合法条件”。然后,我尝试在更新用户记录之前清理控制器中的这个'legal‘参数,但结果是:
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
发布于 2018-03-12 09:45:41
您没有正确使用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!https://stackoverflow.com/questions/46201638
复制相似问题