【发布时间】:2013-01-18 10:33:31
【问题描述】:
我的表单中有一个字段应该接受 ATOM 和 RSS 提要作为输入,我如何在我的模型中编写验证代码来验证仅提供提要作为输入。
【问题讨论】:
-
你想要 feed-url(并检查输入是否真的是一个 url),还是想要整个 feed 文本?
-
我想知道它是一个正确的 RSS 或 ATOM feed URL,我不需要它此时呈现的文本。
我的表单中有一个字段应该接受 ATOM 和 RSS 提要作为输入,我如何在我的模型中编写验证代码来验证仅提供提要作为输入。
【问题讨论】:
您可以使用来自 Feed 检测器的 this。 是的,它会检测提要,但您可以使用正则表达式来检查模型的 url 是否匹配它
来自代码:
matches |= html.scan(/<link.*href=['"]*([^\s'"]+)['"]*.*application\/atom\+xml.*>/)
matches |= html.scan(/<link.*application\/atom\+xml.*href=['"]*([^\s'"]+)['"]*.*>/)
# matches |= atom_feed
matches |= html.scan(/<link.*href=['"]*([^\s'"]+)['"]*.*application\/rss\+xml.*>/)
matches |= html.scan(/<link.*application\/rss\+xml.*href=['"]*([^\s'"]+)['"]*.*>/)
# matches |= rss_feed
【讨论】:
基本上任何有效的 URL 都可以是有效的 RSS/Atom URL。找出答案的唯一方法是点击该 URL 并检查收到的内容是否可解析为 RSS/Atom。
【讨论】: