我正在用Rails 4编写一个简单的CMS。我在数据库中存储我的文章作为包含HTML代码的文本字符串(不必要)。
无论如何,我需要一个方法来检查保存前,如果文章的文本是有效的HTML或也没有(考虑到这篇文章不是完整的HTML文档,但它的一部分,没有DOCTYPE和其他东西)。大概是这样的:https://validator.w3.org/#validate_by_input+with_options(“Validate HTML fragment”),但是在我的Rails应用程序中作为模型的验证方法工作,所以如果我的标记是错误的,它不应该保存文章,而是显示错误消息。
我如何才能做到这一点?
2条答案
按热度按时间fv2wmkja1#
所以我想出了如何使用
w3c_validators
gem来实现这一点。1.将
gem 'w3c_validators'
添加到Gemfile并运行bundle install
。1.更改模型。我添加了一个自定义验证方法来验证HTML,如下所示:
字符串
(我需要将代码 Package 到HTML和BODY标签中,并添加更多的标签,因为我没有在DB中存储完整的HTML,只有部分)。
fzwojiic2#
如果你想在rails中检查一个字段的输入,你可以简单地使用三个方法
1.检查输入的JS/ AJAX (避免页面重新加载)
1.定义为有效HTML的约束
在您的模型中,您可以创建一个方法来检查插入到字段中的文本是否有效。在保存表单之前,它会检查插入的HTML是否符合有效HTML的定义。