首页 > 解决方案 > 将自定义标签添加到 sanitized_allowed_tags 而不替换默认值

问题描述

我想为ActionView::Base.sanitized_allowed_tagsforsanitize()方法添加自定义标签。

正如文档中所写,我必须在application.rb下面添加一个配置选项来附加新的自定义标签:

# In config/application.rb
config.action_view.sanitized_allowed_tags = ['strong', 'em', 'a']

但是当我设置一个新标签时:

config.action_view.sanitized_allowed_tags = ["nav"]

["strong", "em", "b", "i", ...]它仅用 ["nav"]替换默认标签。我发现的唯一解决方法是使用合并的新标签重新声明整个默认数组:

config.action_view.sanitized_allowed_tags = ["nav", "strong", "em", "b", "i", ...]

我也尝试过config.action_view.sanitized_allowed_tags += ["nav"],但默认情况下sanitized_allowed_tags为空。

有没有更好的方法来添加标签而不在应用程序级别重新声明默认值?

我正在使用 Ruby on Rails v5.2

标签: ruby-on-rails

解决方案


您可以在一个after_initialize块中执行此操作:

config.after_initialize do
  ActionView::Base.sanitized_allowed_tags.add 'nav'
end

推荐阅读