首页
/ Validates URL 项目技术文档

Validates URL 项目技术文档

2024-12-17 21:38:46作者:裴麒琰

1. 安装指南

要将 Validates URL 集成到您的项目中,您可以通过以下两种方式之一进行安装:

通过 Gemfile 安装

在您的 Gemfile 文件中添加以下代码:

gem "validate_url"

然后执行以下命令安装 gem:

bundle install

手动安装

如果您希望手动安装,可以使用以下命令:

sudo gem install validate_url

确保您的系统已经安装了 Ruby 和 Gem。

2. 项目使用说明

Validates URL 为 ActiveRecord 和 ActiveModel 添加了验证 URL 的功能。以下是如何在您的模型中使用它的示例。

在 ActiveRecord 中使用

class Pony < ActiveRecord::Base
  # 标准验证
  validates :homepage, url: true

  # 允许 nil 值
  validates :homepage, url: { allow_nil: true }

  # 允许空白
  validates :homepage, url: { allow_blank: true }

  # 禁止本地主机名
  validates :homepage, url: { no_local: true }

  # 使用自定义协议
  validates :homepage, url: { schemes: ['https'] }

  # 使用公共后缀数据库
  validates :homepage, url: { public_suffix: true }

  # 支持 Postgres URL 数组
  validates :homepage, url: { accept_array: true }
end

在 ActiveModel 中使用

class Unicorn
  include ActiveModel::Validations

  attr_accessor :homepage

  # 使用传统语法
  validates_url :homepage, allow_blank: true
end

在 RSpec 中使用

spec_helper.rbrails_helper.rb 文件中引入匹配器:

require 'validate_url/rspec_matcher'

在您的 spec 文件中:

RSpec.describe Unicorn
  it { is_expected.to validate_url_of(:homepage) }
end

国际化 (I18n)

默认的错误消息是 "is not a valid URL"。您可以通过传递 message: "my custom error" 选项来自定义错误消息。

3. 项目 API 使用文档

Validates URL 提供了丰富的验证选项,以下是一些常用选项:

  • url: true:基础验证。
  • allow_nil: true:允许字段为 nil。
  • allow_blank: true:允许字段为空或空白。
  • no_local: true:禁止本地主机名。
  • schemes: ['https']:自定义支持的协议。
  • public_suffix: true:使用公共后缀数据库。
  • accept_array: true:支持数组类型的 URL。

4. 项目安装方式

请参考上述“安装指南”中的步骤进行安装。

热门项目推荐
相关项目推荐

项目优选

收起
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
46
34
PDFMathTranslatePDFMathTranslate
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker
Python
25
3
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
171
39
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
164
33
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
248
63
RuoYi-Cloud-Vue3RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
21
17
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
892
0
GitCode光引计划有奖征文大赛GitCode光引计划有奖征文大赛
GitCode光引计划有奖征文大赛
16
1
RuoYi-CloudRuoYi-Cloud
🎉 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统,同时提供了 Vue3 的版本
Java
25
10
advanced-javaadvanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
389
102