【发布时间】:2019-05-19 06:25:53
【问题描述】:
我在模型中有以下 ruby 代码:
if privacy_policy_link.match(/#{domain}($|\/$)/)
errors.add(:privacy_policy_link, 'Link to a specific privacy policy page on your site instead of your homepage.')
end
这一直有效,直到用户尝试保存如下所示的隐私政策链接:
https://example.com/about-me/privacy-policy-for-example-com/
目标是我不希望他们链接到他们的基本主页(example.com 或 www.example.com 等)以获取此隐私政策链接(出于某些随机、复杂的原因,我不会深入探讨)。上面提供的链接应该通过匹配器(这意味着因为它们链接到其网站上的单独页面,所以不应将其视为匹配,并且在保存表单时不应看到任何错误) - 但是因为他们在 url 的后半部分引用了他们的基本域,所以它作为匹配出现。
在我的一生中,我无法弄清楚 rubular 上的正确正则表达式如何让这个 url 通过匹配算法。当然,我不能只要求用户重命名他们的隐私政策链接以在最后删除“com”——因为这样:https://example.com/about-me/privacy-policy-for-example 会通过。 :)
如果有任何帮助可以帮助我了解如何解决此问题,我将不胜感激!
Rubular 链接:http://rubular.com/r/G5OmYfzi6t
【问题讨论】:
-
privacy_policy_link变量是否包含https://?
标签: ruby-on-rails ruby regex rubular