2012-02-16 129 views
2

我想问一下,如果有一种方法可以同时验证字符串为url或email吗?在Ruby on Rails中验证url格式

例如:

validates_format_of :string, :with => [url_regex, email_regex] 

string = 'http://domain.com' => valid 
string = '[email protected]' => valid 

在此先感谢!

+0

你需要你自己的validate方法,我不认为rails验证在这里提供OR选项 – Naveed 2012-02-16 07:07:10

回答

2

根据Rails API,你不能在数组或其他东西中传递两个正则表达式。解决方法是创建一个匹配URL和电子邮件地址的正则表达式,或者 - 如Naveed所示 - 创建一个自定义验证。这就是说,我不认为你可以使用正则表达式来验证URL。

+0

谢谢,但我想要的是检查字符串是否是url或电子邮件 – 2012-02-16 07:08:20

+0

在这种情况下,你将不得不创建一个匹配URL和电子邮件地址的正则表达式。你不能传递两个正则表达式。 – Mischa 2012-02-16 07:11:42

+0

感谢mischa和naveed。我想我必须创建我自己的验证。我只是认为validates_format_of是非常干净的。 – 2012-02-16 07:41:01