繁体   English   中英

了解 ruby​​ on rails 文档

[英]Understanding ruby on rails documentation

我目前正在创建一个 Rails 应用程序。
我正在编写一个模型并想添加一些验证。
从文档中我看到做这样的事情是可行的

class Person < ApplicationRecord
  validates :terms_of_service, acceptance: { message: 'must be abided' }
end

我试图在这里理解 validates 方法。
在更一般的层面上,我想更好地理解 Rails 文档。
我的理解是 validates 是 ApplicationRecord::Base 的一个类方法。 可以使用各种参数和选项重用它。 我找到的最好的文档是这个
我不明白在哪里可以找到所有验证选项和参数的列表。
在这种情况下,

  • 什么是接受?
  • 我在哪里可以在文档中找到它的描述?
  • 我在哪里可以找到所有其他可能的验证参数的列表?

任何有关如何更好地理解 ruby​​ on rails 文档的提示将不胜感激。

validates :terms_of_service, acceptance: true

acceptance映射到AcceptanceValidator ,它是一个默认的 Rails 验证器:

https://github.com/rails/rails/blob/main/activemodel/lib/active_model/validations/acceptance.rb

示例中列出了所有默认验证器:

https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates

absence
acceptance
confirmation
exclusion
format
inclusion
length
numericality
presence

以及由ActiveRecord添加的其他验证器:

associated
uniqueness

https://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

每个验证器的可用选项都记录在此处的辅助方法中:

https://api.rubyonrails.org/classes/ActiveModel/Validations/HelperMethods.html

validates :terms_of_service, acceptance: true
# is the same as using a helper method
validates_acceptance_of :terms_of_service
# and both map to rails default `AcceptanceValidator`

你也可以有自定义验证器:

validates :terms_of_service, terms: true # maps to `TermsValidator`

# because there is no TermsValidator class in rails, you have to define it
# class TermsValidator
# # TODO: see docs for examples of custom validators
# end

https://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM