ruby-on-rails - 验证包含特定字符串的 Rails

标签 ruby-on-rails ruby validation ruby-on-rails-4

我的一个模型中有一个名为“facebook_url”的参数。我如何确定用户输入包含“facebook.com”而不是某个随机网站?

现在我有:

unless self.facebook_url[/\Afacebook.com\/\//]
  self.facebook_url = "" unless self.facebook_url == ""
end

但这并不是我想要的那样。

最佳答案

正则表达式为:

\A((http|https):\/\/)?(www.)?facebook.com\/

将匹配包含有效 facebook url 的字符串:

现在,要验证您的 Rails 模型,请像这样对您的模型文件使用 Rails 验证:

validates :facebook_url, format: { with: /\A((http|https):\/\/)?(www.)?facebook.com\//,
message: "use a valid facebook url" }

使用您的示例代码,将是:

if self.facebook_url.match(/\A((http|https):\/\/)?(www.)?facebook.com\//)
 # valid facebook url
else
 # invalid facebook url
end

您可以在 www.rubular.com 上测试正则表达式

关于ruby-on-rails - 验证包含特定字符串的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27936316/

相关文章:

ruby-on-rails - 卸载 Rails_admin

ruby-on-rails - 使用表单提交时如何下载 prawn pdf 文件?

ruby - 在 OSX Yosemite(或 Sierra)中安装 compass 时出错

ruby - 使用 Ruby SSLSockets 获取客户端地址

forms - Chrome HTML5 表单验证问题

javascript - 是否可以将 'required' 传递给 AngularJS 指令?

php - 缺少必需表单字段的 Symfony 验证错误消息

ruby-on-rails - Rails 表单与 HTML/CSS 模板联姻

ruby-on-rails - 我如何漂亮地将散列打印到 Rails View ?

ruby-on-rails - 在 rails 上运行 cron 作业(部署在多个服务器上)